MDX SSAS 2008去年计算-闰年问题



我有一个计算,计算上一年的值,实现方式如下:

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

我这样做是因为只使用PARALLELPERIOD会导致不正确的总计算,例如当只选择一些月份时。它工作得很好。

然而,现在我面临以下闰年问题:

Month         SalesAmount  SalesAmount LY
------------- ------------ ---------------
January 2012  1000
February 2012 1100         --Leap year - 29.February
January 2013  1200         1000
February 2013 1300         1050

缺失的值(1100 - 1050 = 50)正好等于29.2.2012中的值。

有谁知道如何解决这个问题吗?如何使闰年正确工作,同时仍然保持正确的总数行为?

这有帮助吗?

PARALLELPERIOD
(
  [Time].[Year - Month - Day].[Year],
  1,
  ISLEAF([Time].[Year - Month - Day].currentmember),
  Ancestor([[Time].[Year - Month - Day].currentmember, [Time].[Year - Month - Day].[Month]),
  [Time].[Year - Month - Day].currentmember)
), 
[MEASURES].[SalesAmount]

如果当前成员是Day,它将引用他的month父元素,所以这个月是28天还是29天并不重要。

最新更新