我有一个“趋势”维度。层次结构是Trend-> Week-> Day。事实与“日”钥匙有关。无法保证在给定的一周内所有天都存在度量值。
当用户想要在“周”级别看到该度量时,我只需要显示该周的最后一个空白值。我有多个措施,因此我不想为每个措施创建一个新的计算量度(如How to display the total of a level as the value of its last child in MDX)
相反,有没有办法创建一个命名集,我可以用它来实现下面的功能?
示例
Week Day Measure
1 1 4
1 2 5
2 3 7
2 7 9
3 5 10
应该在“周”级别获得
Week Day Measure
1 2 5
2 7 9
3 5 10
谢谢! :)
答案 0 :(得分:1)
如果要创建可以重复用于多个度量的计算成员,可以创建仅包含一堆计算成员的实用程序维度。 Dunno如何在SSAS中做到这一点(我熟悉icCube)。然后,您可以在请求中使用此层次结构来应用计算成员。
让我们举个例子吧。我称之为实用维度[Stats]。其默认成员是返回当前度量值的计算成员。它包含[最后一天]计算。构件。
WITH MEMBER [Stats]。[Stats]。[Last Day] AS(
NonEmpty( Order( [Trend].[Trend].currentMember.children, [Trend].[Trend].currentMember.properties( 'key', TYPED ), BDESC ), [Stats].[Stats].defaultMember ).item(0), [Stats].[Stats].defaultMember )
选择 [措施]。成员0, [趋势]。[趋势]。[周]。成员1
FROM [你的立方体]
在哪里[统计]。[统计]。[上个月]
您可以在切片器中看到[Last Month]的技巧,该技巧应用于SELECT的每个[MEasures]。然后它的公式使用[Days]的NonEmpty(基于键的顺序()反转 - 你可能需要调整)当前[MEasures]。