半加算的測定の問題-月ごとではなく、月ごとのスナップショットの合計

StackOverflow https://stackoverflow.com/questions/1801462

  •  05-07-2019
  •  | 
  •  

質問

SQLに習熟しているがMDXの初心者であるため、これを回避するのに苦労しています:

毎月の口座残高のスナップショットを含むファクトテーブルがあります。私は半加算的な尺度としてバランスをロールアップする必要があります-明らかに、バランスのためにストレートサムは機能しません。ただし、すべてのアカウントの残高を合計することにより、1か月以内にすべての残高を個別に合計する必要があります。したがって、「lastnonempty」は概念は私にとっても機能していません。例、事実が次のように見える場合:

Date        AccountNo     Balance
2009-01-31  1111          $100
2009-01-31  2222          $100
2009-01-31  4444          $100
2009-01-31  5555          $100

2009-02-28  1111          $100
2009-02-28  2222          $200
2009-02-28  3333          $500
2009-02-28  5555          $50

etc.

また、アカウントをメジャーカテゴリ/マイナーカテゴリ/アカウント階層にグループ化するアカウントディメンションがあり、すべてのアカウントの各月の残高を合計する次のような出力が必要です:

Month        Total
January 09   $400
February 09  $850

そして、アカウントの種類ごとに分けて:

Month        Total
January 09   $400
  Type 1      $200
    1111       $100
    2222       $100
  Type 2     $200
February 09  $850
  Type 1     $300
  Type 2     $550

しかし、バランスは月、四半期、または年にわたって合計してはいけません。意味がないので、2回カウントされます。より長い時間間隔では期間の終了が表示されるはずです:

Quarter    WRONG    Correct
Q1         $1250    $850   // should be the sum of balances for the *last* month in Q1
  Type 1   $500     $300
  Type 2   $759     $550

ストック「lastnonempty」を使用する場合集計では、1か月の最後のアカウント行のみを取得しているようで、先月のアカウント残高の合計は取得していないようです。その月の合計は、合計ではなく、その月に存在する1つのランダムアカウントから取得した残高のみを表示しているようです。 (確かにランダムではなく、おそらく保存順序などに基づいて選択していると思います)

単純なこと、間違ったことをしているに違いない...

役に立ちましたか?

解決

私はこれを解決したと思います:残高のあるソースデータは非常にまばらでした-残高がゼロ以外の場合のみ行があり、残高がゼロの場合はアカウントの行がありませんでした。そのため、すべてが厄介になりました(在庫として想像してください。部品の数があり、それらの数は多くの場合ゼロですが、0の場合、行はファクトテーブルから欠落しています)

データソースで「アドインを追加」するビューを作成できました。すべての追加行、残高ゼロ、およびその後ClosingPeriod()関数が期待どおりに動作を開始しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top