我有一个要放入过滤器的维度,并创建了计算所得的成员,该成员应动态显示该维度中所选成员的数量。
该维度没有“全部”成员。
这是我的尝试
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。
答案 0 :(得分:0)
在此期间,我找到了答案:
我在问题中编写的查询实际上不是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会随之动态变化。