我有一个计算,计算上一年的值,实现方式如下:
([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天并不重要。