DAX 计算子总和的总和

DAX caluculate sum of children sums

我是DAX新手,之前用过MDX。 我在 MDX

中有以下公式
    CREATE 
  MEMBER CURRENTCUBE.[Measures].[Count Visit] AS [Measures].[Unique Contact Count]
  ;    

scope([Date Cheque].[YEAR-MONTH-DATE].[Month Of Year], [Measures].[Count Visit]);
this= Sum
        ({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
         ,[Measures].[Count Visit]);
end scope;

scope([Date Cheque].[YEAR-MONTH-DATE].[Calendar Year], [Measures].[Count Visit]);
this= Sum
        ({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
         ,[Measures].[Count Visit]);
end scope;

我知道 DAX 中没有层次结构,所以我不知道如何做这样的事情

一般情况下,您可以使用DAX中的过滤器检查功能,例如ISFILTERED, ISCROSSFILTERED, HASONEVALUE and ISINSCOPE,来确定当前的计算级别。这使我们能够执行通常在 MDX 中使用 SCOPE 语句的复杂操作。

但是,在这种情况下,您似乎只想始终在日级别评估 [Measures].[Unique Contact Count],然后将其提升到更高级别。为此,我们可以简单地按如下方式编写 [Count Visit] 度量,假设您的 'Date Cheque' table 在天数处包含一个 [Date] 列:

SUMX(VALUES('Date Cheque'[Date]), [Unique Contact Count])

SUMX 是所谓的迭代器函数,它将计算第一个参数(必须是 table 表达式)中每一行的第二个参数,并且 return第二个参数的总和。