我需要一个 MDX 来消除现有集合中的一些成员,我的场景如下
我有具有 n 级父子层次结构的维度,并且我在 PPS 仪表板中使用该维度。当用户与父母一起选择所有孩子时,我不应该显示孩子,我应该只显示父母,这适用于任何级别。
下面是一个例子,假设公司是我的维度,它在主要部门下有人力资源和财务部门和子部门(我在括号中添加了每个部门的主键)。
公司 (1) 人力资源 (2) 人力资源分部 1 (3) 人力资源分部 2 (4) 金融 (5) 财务分 1 (6) 财务分 2 (7)
我在我的 PPS 中将上述维度用作“多选树”,因此用户可以一次选择 HR、HR Sub 1、HR Sub 2。When selects all child under parent then I need to exclude the children.
下面是实现它的逻辑
首先获取每个成员的父级,如果成员父级存在于所选集中,则忽略该成员。为了实现这一点,我编写了一个 MDX,我能够找到每个成员的父级,但我不知道如何检查父级是否存在于集合中。
下面是我写的MDX
WITH SET DeptSet AS '{[Company].[Dept].&[2], [Company].[Dept].&[3],[Company].[Dept].&4], [Company].[Dept].&[6]}'
MEMBER Measures.ParentNode as [Company].Dept].CURRENTMEMBER.PARENT.UNIQUENAME
SELECT [Measures].[EmpCount] on ROWS, {Need Trimmed Member Set Here} on COLUMNS FROM [CUBE]
在上面的 MDX 中,“DeptSet”是我从 PPS 收到的集合,在实现上述逻辑后,我需要得到如下集合
{[Company].[Dept].&[2], [Company].[Dept].&[6]}
提前致谢。