SSAS MDX计算得出的成员:3个月的移动平均线不起作用

时间:2019-08-13 02:43:49

标签: sql-server ssas mdx mdx-query analysisservices

我有一些MDX代码可以产生3个月的平均值。

它不起作用,我找不到问题。

我研究了许多站点-我试图模仿在类似情况下发现的代码,但是看不到我在做什么错。

Calculated Member in SSAS MDX not working

我有一个“时间”维度和一个“时间层次”

Fiscal Time Dimension

我希望创建一个新的度量,以显示当前月份的平均值+过去2个月的平均值(3个月的平均值),但是目前,它仅显示NULL值

Result not showing the average, showing NULLs

有人发现我的错误吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该尝试使用以下公式(我尝试尊重您的尺寸和度量名称,如果我输入错误,请告诉我):

AVG({[FISCAL TIME].[FISCAL TIME HIERARCHY].CURRENTMEMBER.LAG(2):[FISCAL TIME].[FISCAL TIME HIERARCHY].CURRENTMEMBER},[Measures].[AMOUNT or UNIT - WARRANTY])

显然,在使用层次结构时,您无法指定级别(例如FISCAL MONTH (Label Only))。

请注意,当您以“月”级别浏览时,此公式有效,但是如果转到日级别,它将计算3个移动天数(年份和所有其他级别的原则相同)。

如果您想将计算固定在3个移动月,无论粒度(月或更小),我建议您使用PARALLELPERIOD函数:

AVG({PARALLELPERIOD([FISCAL TIME].[FISCAL TIME HIERARCHY].[FISCAL MONTH (Label Only)],2,[FISCAL TIME].[FISCAL TIME HIERARCHY].CURRENTMEMBER):[FISCAL TIME].[FISCAL TIME HIERARCHY].CURRENTMEMBER},[Measures].[AMOUNT or UNIT - WARRANTY])

我还建议您添加一个范围,以在{Month}高于“ Month”时将计算值设置为NULL

我真的希望它能解决您的问题。