【问题标题】:MDX: count number of members selected in filterMDX:计算过滤器中选择的成员数
【发布时间】:2019-06-06 11:24:34
【问题描述】:

我有一个要放入过滤器的维度,并创建了计算成员,该成员应动态显示该维度中选定成员的数量。

维度没有 All 成员。

这是我的尝试

with member [Measures].[Count1] as count(existing(([MyDimension].[MyDimensionHierarchy].members)))

select  [Measures].[Count1] on 0
from [MyCube] --  gives me 1 

这个会给我 2 个是正确的:

with member [Measures].[Count1] as count(existing(([MyDimension].[MyDimensionHierarchy].members)))

select  [Measures].[Count1] on 0
from [MyCube]
where ({[MyDimension].[MyDimensionHierarchy].[Member1], [MyDimension].[MyDimensionHierarchy].[Member2]})

但是,问题是,当我使用上面的公式创建计算成员,并将 Count1 拖到 Excel 数据透视表中,并将 MyDimension 拖为过滤器时,当我进行多选时维度成员,我希望计数随着我选择的成员数量的变化而动态变化。

但 Count1 始终保持等于 1。

【问题讨论】:

    标签: ssas mdx iccube


    【解决方案1】:

    同时我找到了答案:

    我在问题中写的查询实际上不是 Excel 数据透视表发送到多维数据集的查询。 Excel 数据透视表生成如下查询:

    SELECT  FROM (SELECT ({[MyDimension].[MyDimensionHierarchy].[Member1],[MyDimension].[MyDimensionHierarchy].[Member2]}) ON COLUMNS  
    FROM [MyCube]) 
    WHERE ([Measures].[Count1]) 
    

    应该通过使用包含过滤成员的动态集来完成此操作:

    create dynamic set [SelectedMembers] as existing( [MyDimension].[MyDimensionHierarchy].members )
    

    然后:

    create member Measures.SelectedMembersCount as count([SelectedMembers])
    

    所以这个集合会随着过滤器中选择不同的成员而动态变化,并且 SelectedMembersCount 会随之动态变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多