我在多维数据集中创建了这样的计算成员:
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.Lag(11),[自定义]。[频率] .defaultMember)
否则如果有任何其他措施
Aggregate([Time]。[Time] .currentmember:[Time]。[Time] .currentmember.Lag(11),[Custom]。[Frequency] .defaultMember)
保留初始计算(使用aggregate()函数)。
您只能为此度量编写SCOPE:
SCOPE([Custom].[Rolling 12],[Measures].[Average Balance]);
THIS = {your custom average calculation};
END SCOPE;
或者没有SCOPE它必须以这种方式工作:
([Custom].[Rolling 12],[Measures].[Average Balance]) = {your custom average calculation};