0

製品ディメンション販売ファクト テーブルを使用して、データウェアハウスとキューブを設計しようとしています。製品の寸法はSCD(タイプ2)です。

製品ディメンションのデータが最初の年のようになっているとしましょう。

名前| 製品グループ| 年
A | A | 2011
B | A | 2011
C | B | 2011

そしてこのように2年目:

名前| 製品グループ| 年
A | A | 2012年
B | B | 2012年
C | C | 2012年

ご覧のとおり、一部の製品は2011年から2012年の間に製品グループを変更しました。

キューブでは、2つのタイプの質問をしたいと思います。

  • 簡単な方法: 2011年に各製品グループでいくら売れたか。

  • 難しいのは、製品が2012年の製品グループに属していた場合、2011年に各製品グループでいくら売れたかということです。

倉庫をどのように設計し、キューブはこれを実現しますか?

ありがとう!

追伸 SQLServer2012を使用しています

4

2 に答える 2

1

これはタイプ3SCDとして扱うことができます。[Product Group 2011]列を追加すると、これらのタイプのwhat-if質問に答えることができます。

Name    |    Product Group  |  Product Group 2011  |    Year
A       |          A        |          A           |    2012
B       |          B        |          A           |    2012
C       |          C        |          B           |    2012

別の方法は、製品のディメンションと販売ファクトに耐久性のあるキーを追加することです。

id | dur_id |    Name    |    Product Group  |    Year
1  |    1   |    A       |          A        |    2012
2  |    2   |    B       |          B        |    2012
3  |    3   |    C       |          C        |    2012
4  |    1   |    A       |          A        |    2012
5  |    2   |    B       |          B        |    2012
6  |    3   |    C       |          C        |    2012

次に、SALESファクトからdur_idのPRODUCTディメンションに参加できます。ディメンション、Yearに基づいて制限することを忘れないでください。

SSASの場合、「重複した」ファクト行(つまり、2011に関連付けられた2011年と2012年のファクト行、および2012に関連付けられたファクト行)を読み込むことができます。次に、2012を[Year]属性階層のデフォルトメンバーにする必要があります。年を指定しないロールアップを防止します。

于 2012-12-04T18:32:46.487 に答える
0

私はmsdnのフォーラムで素晴らしい答えを得ました。

http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/96070b49-954a-456f-9687-3c8afaf74a39

于 2012-12-05T06:42:19.623 に答える