我是SSAS的新手,我遇到了以下问题:
事实表具有度量:成本和生产。但是在一天中的一次,我可以在事实数据表中有多个值,如下所示:
能源|成本|生产|时间
NHU-1共同能源| 0.99 | 21.28 | 2013-12-01 00:15:00.000
NHU-1共同能源| 13.74 | 21.28 | 2013-12-01 00:15:00.000
NHU-1共同能源| 7.92 | 21.28 | 2013-12-01 00:15:00.000
NHU-1共同能源| 1.57 | 21.28 | 2013-12-01 00:15:00.000
NHU-1共同能源| 9.03 | 21.28| 2013-12-01 00:15:00.000
现在,我必须对一个名为X的字段进行计算。
公式为: X= sum(成本)/Max(生产)
在这种情况下,X的值为:
X= 33.25 / 21.28
X= 1.56
我创建了一个时间维度层次结构,格式如下: Year / Day / Time
在DSV中,我创建了一个命名计算:x= cost / Production,并在Cube中将Production设置为Max聚合类型。
当我查询多维数据集并查看时间级别的值时,这很有效,但问题出现在上面的级别(日和年),因为生产仍然聚合为这些级别的最大值。我需要将生产聚合为时间级别的最大值,而对于其余级别,我需要将其聚合为总和。如何在SSAS中实现这一点?我应该改用计算成员吗?
发布于 2015-02-03 18:57:46
您可以按作用域覆盖更高级别的值:
假设[Time Dimension] --维度名称,[YDT] --层次结构名称。
SCOPE ([Time Dimension].[YDT].[Day],[Measures].[Production]);
THIS = SUM([Time Dimension].[YDT].CurrentMember.Children,[Measures].[Production]);
END SCOPE;
SCOPE ([Time Dimension].[YDT].[Year],[Measures].[Production]);
THIS = SUM([Time Dimension].[YDT].CurrentMember.Children,[Measures].[Production]);
END SCOPE;由于CurrentMember的原因,我不确定这是否适用于Year和Day级别的多个过滤器。
https://stackoverflow.com/questions/28219573
复制相似问题