0

我有计算上一年的值的计算,通过以下方式实现:

([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 的值。

有谁知道如何解决这个问题?如何让闰年正常工作,同时仍保持正确的总计行为?任何帮助将不胜感激。

4

1 回答 1

0

这能帮上忙吗?

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,它将引用他的月父级,因此该月是 28 天还是 29 天都没有关系。

于 2013-03-08T15:37:21.567 回答