首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在叶级聚合为Max,以及如何聚合为时间维层次结构中的上级。SSAS

如何在叶级聚合为Max,以及如何聚合为时间维层次结构中的上级。SSAS
EN

Stack Overflow用户
提问于 2015-01-30 00:22:06
回答 1查看 775关注 0票数 0

我是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中实现这一点?我应该改用计算成员吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 18:57:46

您可以按作用域覆盖更高级别的值:

假设[Time Dimension] --维度名称,[YDT] --层次结构名称。

代码语言:javascript
复制
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的原因,我不确定这是否适用于YearDay级别的多个过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28219573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档