首页 > 解决方案 > 计算成员的条件公式

问题描述

我在多维数据集中创建了计算成员,如下所示:

CREATE MEMBER [Custom].[Rolling 12] as Aggregate([Time].[Time].currentmember:[Time].[Time].currentmember.Lag(11), [Custom].[Frequency].defaultMember)

对于多维数据集中的任何度量,它将在过去 12 个月内汇总。但是我有平均余额度量,它不应该聚合,而是在上面定义的同一时期平均。

那么,是否可以编写这样的东西(伪代码):

CREATE MEMBER [Custom].[Rolling 12] as 

如果度量名称 = 平均余额,则

平均([时间].[时间].currentmember:[时间].[时间].currentmember.Lag(11),[自定义].[频率].defaultMember)

else if任何其他措施

聚合([时间].[时间].currentmember:[时间].[时间].currentmember.Lag(11),[自定义].[频率].defaultMember)

标签: ssasmdx

解决方案


保持初始计算不变(使用 aggregate() 函数)。

您只能为此度量编写 SCOPE:

SCOPE([Custom].[Rolling 12],[Measures].[Average Balance]);
THIS = {your custom average calculation};
END SCOPE;

或者没有范围,它必须以这种方式工作:

([Custom].[Rolling 12],[Measures].[Average Balance]) = {your custom average calculation};

推荐阅读