求一句Calculated Member的MDX语句

时间:2022-03-08 15:12:27
大家好,我的事实表结构如下:
value, component, date
1.5,    c1,    2015-1-2
1.7,    c2,   2015-1-7
......


我想在SSAS中的Cube加入一个Calculated Member,算出"3天内当前component的移动平均值"。
也就是说,对于每条事实记录,计算从date-3到date的中所有component与当前记录相等的平均值,作为calculated member.
请问这句语句如何写呢?

非常感谢。

2 个解决方案

#1


说一下思路吧:
1. 先sum一下每天的总合
2. 然后根据这一天的日期,在你的实体表格中选取所有合适日期的数据求和。

这样不会对同一日期重复求和。

#2


因为我是要写到cube的caculated Member里面,暂时这句语句我写成这样,但是执行结果都是N/A。
MDX实在不熟悉,可否指导一下。谢谢。

(
   IIF( [Measures].[Result_Count] =1,
    Avg( ([Dim Date].[Hierarchy].CurrentMember.Lag(3), [VERSIONED COMPONENT].CurrentMember): 
      ([Dim Date].[Hierarchy].CurrentMember, [VERSIONED COMPONENT].CurrentMember), 
   [Measures].[Result_Sum]),
    "N/A")
)

#1


说一下思路吧:
1. 先sum一下每天的总合
2. 然后根据这一天的日期,在你的实体表格中选取所有合适日期的数据求和。

这样不会对同一日期重复求和。

#2


因为我是要写到cube的caculated Member里面,暂时这句语句我写成这样,但是执行结果都是N/A。
MDX实在不熟悉,可否指导一下。谢谢。

(
   IIF( [Measures].[Result_Count] =1,
    Avg( ([Dim Date].[Hierarchy].CurrentMember.Lag(3), [VERSIONED COMPONENT].CurrentMember): 
      ([Dim Date].[Hierarchy].CurrentMember, [VERSIONED COMPONENT].CurrentMember), 
   [Measures].[Result_Sum]),
    "N/A")
)