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) は、2012 年 2 月 29 日の値とまったく同じです。

この問題を解決する方法を知っている人はいますか? 正しい合計動作を維持しながら、うるう年を正しく機能させるにはどうすればよいですか? どんな助けでも大歓迎です。

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]

現在のメンバーが日である場合、それは彼の月の親を参照するので、月が28日であるか29日であるかは関係ありません。

于 2013-03-08T15:37:21.567 に答える