MDX - 从不相关的度量组中过滤

时间:2017-07-23 20:43:38

标签: ssas mdx

因此,可以按一个度量值组进行过滤,并从该度量值组中获取不同的成员/人员,并将其用作来自不同度量值组的另一个查询的过滤器。

等效的sql查询

SELECT 
    sum(spend)
FROM
    (SELECT distinct person_id FROM enrollment_fact WHERE program = 'blah') AS a
    JOIN
    (SELECT person_id, sum(spend) AS spend FROM sales_fact GROUP BY person_id) AS b 
    ON a.person_id = b.person_id

假设我在SSAS中有两个不同的度量组,一个用于支出,另一个用于注册,除了时间和person_id之外不相关

还假设有两个程序(数千个)为每个人创建列/属性,以便每个程序充当成员过滤器。

1 个答案:

答案 0 :(得分:0)

是否与:

相同
mdx

如果这两个度量值组都在同一个多维数据集中并且person_id维度是共享的,则可以在NonEmpty中查找。

子查询可以使用NONEMPTY( [person].[person_id].[person_id].MEMBERS , ( [program].[program].[blah] , [measures].[someEnrollmentMeaure] ) ) 函数完成:

mdx

因此,将此添加到SELECT [measures].[someEnrollmentMeaure] ON 0 FROM [youCube] WHERE NONEMPTY( [person].[person_id].[person_id].MEMBERS ,( [program].[program].[blah] ,[measures].[someEnrollmentMeaure] ) ); WHERE子句将按以下person_ids对多维数据集进行切片:

{{1}}