我是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中没有层次结构,所以我不知道该怎么做
答案 0 :(得分:0)
通常,您可以在DAX中使用过滤器检查功能(例如ISFILTERED,ISCROSSFILTERED,HASONEVALUE和ISINSCOPE)来确定当前的计算级别。这使我们可以做一些通常在MDX中使用SCOPE语句的复杂事情。
但是,在这种情况下,您似乎想要做的就是总是在日一级评估[措施]。[唯一联系计数],然后将其向上累计。为此,我们可以简单地编写[Count Visit]度量,如下所示,假设您的“ Date Cheque”表在当天的谷物中保留了[Date]列:
SUMX(VALUES('Date Cheque'[Date]), [Unique Contact Count])
SUMX是一个所谓的迭代器函数,它将为第一个参数(必须是表表达式)中的每一行求值第二个参数,并返回第二个参数的总和。