返回MDX中具有相同父成员的成员的计数

时间:2015-10-29 15:04:01

标签: count mdx

我想要实现的目标

我需要返回共享同一父成员的成员实例的计数,并在每行上显示它,约束成员。我不确定如何最好地解释这一点,所以我在下面添加了一个我想要实现的图像。

Example data

因为Delta下有四个不同的成员,Delta的计数是四。


为什么我要努力实现它

我需要将结果数据过滤到每个父项的最后一行,因此Delta只返回成员4的行。如果您可以建议更好的方法来执行此操作,我会很感激。


我尝试了什么

我一直在尝试将其构建为计算成员,但找不到任何有效的内容。我已经浏览了MSDN上所有不同的COUNT格式,找不到有效的格式。

CODE

WITH MEMBER [Measures].[Count]
AS COUNT([Person].[Person ID].CURRENTMEMBER.PARENT.CHILDREN)

SELECT {
    [Measures].[Value]
    ,[Measures].[Count]
    } ON 0
,NONEMPTY (
            [Date].[Date].[Date].MEMBERS *
            [Transaction Number].[Transaction Number].[Transaction Number].MEMBERS *
            [Person].[Person ID].[Person ID].MEMBERS
            ,[Measures].[Value]
            ) ON 1
FROM (SELECT [Date].[Date].[Date].&[20150107] ON 0 FROM [My DW]);

2 个答案:

答案 0 :(得分:1)

试试这个:

with member [Measures].CountOfSiblings as
COUNT(dim.hier.CURRENTMEMBER.PARENT.CHILDREN)

select dim.hier.level2.members on 1,
{[Measures].[value], [Measures].CountOfSiblings} on 0
from [aw cube]

.hier.currentmember.parent.children部分将为轴上的当前成员的父级生成一组所有子项。

它将返回成员,度量值以及成员父母拥有的子女数量。

修改 根据我们后来的对话,我认为以下内容将更符合要求:

WITH MEMBER [Measures].[Count]
AS COUNT
       (
        NonEmpty
               (
                [Person].[Person ID].MEMBERS, 
                {([Measures].[Value] , [Transaction Number].[Transaction Number].CURRENTMEMBER)}
               )
       )

答案 1 :(得分:0)

目前未经测试,我远离AdvWrks,但我稍后将在该多维数据集中进行原型制作:

WITH MEMBER [Measures].[Count] AS
COUNT(
  NONEMPTY(
    EXISTS(
      [Person].[Person ID].[Person ID].MEMBERS
     ,{[Person].[Person ID].CURRENTMEMBER.PARENT}
    )
  , [Measures].[Value]
)
...