MDX:如何在考虑闰年的情况下回顾1年前的最新情况?

时间:2012-03-07 01:58:56

标签: mdx leap-year

尝试提出一个查询,它将为我提供从今天起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 :(得分:0)

首先,为了便于阅读,我将重新格式化您的查询。

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调用的结果)。

您想要的是一系列成员,这是通过range operator :完成的。例如,

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