求等价于指定DAX CALCULATE语句的MDX度量构建方法
等价于指定DAX逻辑的MDX度量
原DAX代码通过CALCULATE筛选'Calendar Dimension'中LAST_WEEK_FLAG为"1"的上下文,计算[Total Orders]的结果。以下是等价的MDX实现:
1. 创建可复用的计算成员(度量)
如果需要在多维数据集中定义一个可重复调用的度量,使用以下MDX脚本:
CREATE MEMBER CURRENTCUBE.[Measures].[Last Week Total Orders] AS SUM( FILTER( [Calendar Dimension].[Calendar Dimension].Members, [Calendar Dimension].[LAST_WEEK_FLAG].CurrentMember.MemberValue = "1" ), [Measures].[Total Orders] ), FORMAT_STRING = "#,##0";
2. 即时查询中的直接计算
如果仅需在单次MDX查询中得到结果,可使用:
SELECT [Measures].[Total Orders] ON 0, FILTER( [Calendar Dimension].[Calendar Dimension].Members, [Calendar Dimension].[LAST_WEEK_FLAG].CurrentMember.MemberValue = "1" ) ON 1 FROM [你的多维数据集名称];
关键说明
- MDX中没有DAX的
CALCULATE函数,通过FILTER筛选符合条件的维度成员,再结合聚合函数(此处用SUM,需与[Total Orders]的DAX聚合逻辑匹配)实现上下文筛选效果。 - 需确保
[Calendar Dimension].[LAST_WEEK_FLAG]是多维数据集中已定义的属性层级,若维度结构不同,需调整成员引用路径。
内容的提问来源于stack exchange,提问作者Avinash Mensinkai
相关产品推荐
相关产品推荐

