MDX,SSAS 2005计算SPLY(去年同期)

时间:2009-08-06 07:37:59

标签: sql-server ssas mdx

我正在尝试实现以下目标:我有一个措施: [Measures]。[Sales] 和时间dimmension: [Time]。[Year - Month - Day] 。我想添加新措施: [Measures]。[Sales SPLY] 以下列方式工作:

MONTH -----------------销售--------------销售SPLY

2009年1月-------- 120 000,00 -------- 110 000,00

2009年2月------ 100 000,00 -------- 90 000,00

2009年3月---------- 120 000,00 -------- 110 000,00

TOTAL:--------------- 340 000,00 -------- 290 000,00

使用以下方式计算[Sales SPLY]的值:我创建了一个新的Sum度量,并在多维数据集脚本中用以下代码替换它:

([Measures].[Sales SPLY], Leaves([Time])) = (PARALLELPERIOD([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember), [MEASURES].[Sales])

它正在工作,但是非常非常慢。有谁知道编写这个MDX的更好方法?仅使用计算成员中的parrarel周期将导致SPLY度量中Total的值不正确。拜托,我google了很多,找不到比这更好的东西了。

1 个答案:

答案 0 :(得分:1)

我倾向于创建像

这样的成员
WITH
MEMBER [Measures].[Sales SPLY] as ([Measures].[Sales], ParallelPeriod([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember))
SELECT {[Measures].[Sales], [Measures].[Sales SPLY]} ON 0, ....

它运作正常。

您如何在整体查询中使用它?

罗布