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第二个参数的总和。
我是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第二个参数的总和。