MDX: как вернуться на 1 год назад, принимая во внимание високосный год? - PullRequest
0 голосов
/ 07 марта 2012

Попытка найти запрос, который даст мне набор дат, начиная с 365 дней с сегодняшнего дня (а в високосные годы после февраля, 366 дней).

Вот что я получил до сих пор:

Select [Measures].[Revenue] on 0, non empty {[Trans Date].[Year - Week - Date].[Date], PARALLELPERIOD([Trans Date].[Year - Week - Date].[Year], 1,[Trans Date].[Year - Week - Date]) }on 1 from Cube

Это, но это восходит к началу "времени". Мне просто нужно, чтобы вернуться на 365 (или 366 високосного года.)

Мысль об использовании Lag, но не совсем уверен, как он будет вписываться в эту схему. У кого-нибудь есть совет по этому поводу?

Спасибо!

1 Ответ

0 голосов
/ 08 марта 2012

Во-первых, я собираюсь переформатировать ваш запрос для удобства чтения.

SELECT [Measures].[Revenue] ON 0,
       NON EMPTY 
       {
         [Trans Date].[Year - Week - Date].[Date],
         PARALLELPERIOD([Trans Date].[Year - Week - Date].[Year],
                        1,
                        [Trans Date].[Year - Week - Date])
       } ON 1
FROM Cube

Здесь у вас есть набор всего уровня Date ([Trans Date].[Year - Week - Date].[Date]) и, кроме того, одного члена из этого измерения (результат вызова PARALLELPERIOD).

Требуется диапазон членов, что достигается с помощью оператора диапазона :. Например,

NON EMPTY
{
  PARALLELPERIOD([Trans Date].[Year - Week - Date].[Year],
                 1,
                 [Trans Date].[Year - Week - Date].[Date].CURRENTMEMBER)
  :
  [Trans Date].[Year - Week - Date].[Date].CURRENTMEMBER
} ON 1

<3 </p>

...