MDX - 如何排除mdx中的某些成员

时间:2011-04-29 10:27:20

标签: mdx

我想知道如何从一个维度中排除某些成员,这些成员与另一个维度中的其他成员有链接...假设我想要排除状态为A或状态为B(dim_status)的客户端(dim_clients)。 我知道如何交叉连接这两个维度来获取那些客户端但我无法弄清楚如何从计算中排除它们,因为EXCEPT函数接受来自相同维度的两个集合,但我想要排除的是交叉连接操作的结果,我不能使用除功能

我想要这样的事情:

SELECT Measure.MyMeasure ON 0 
FROM MyCUBE 
WHERE 
EXCEPT([DIM CLIENTS].[Clients], [EXCLUDED CLIENTS])

由于

2 个答案:

答案 0 :(得分:1)

SELECT Measure.MyMeasure ON 0
FROM MyCUBE
WHERE
EXCEPT([DIM CLIENTS].[Clients], Filter({[DIM CLIENTS].[Clients]},[DIM_STATUS].CurrentMember IS [DIM_STATUS].statusA OR [DIM_STATUS].CurrentMember IS [DIM_STATUS].statusA))

我不太确定[Clients]是什么。我会使用会员。

答案 1 :(得分:0)

您可以使用Extract()功能获取具有正确维度的排除客户端集:

where - Extract( { [EXCLUDED CLIENTS] }, [DIM CLIENTS].[Clients] )

注意一元运算符执行except运算。