MDX, SSAS 2005, расчет SPLY (аналогичный период прошлого года) - PullRequest
1 голос
/ 06 августа 2009

Я пытаюсь добиться следующего: у меня есть мера: [Показатели]. [Продажи] и измерение времени: [Время]. [Год - Месяц - День]. Я хотел бы добавить новую меру: [Меры]. [Sales SPLY] , чтобы работать следующим образом:

МЕСЯЦ ----------------- Продажи -------------- Продажи SPLY

2009 январь -------- 120 000,00 -------- 110 000,00

2009 Февраль ------ 100 000,00 -------- 90 000,00

2009 март ---------- 120 000,00 -------- 110 000,00

ИТОГО: --------------- 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? использование только расчетного периода в вычисляемом элементе приведет к неверному значению итогового значения в SPLY. Пожалуйста, я много гуглил и не мог найти ничего лучше этого.

1 Ответ

1 голос
/ 06 августа 2009

Я, как правило, просто создаю участника, как

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, ....

И все отлично работает.

Как вы используете его в своем запросе в целом?

Rob

...