0

私はデータ ウェアハウスに飛び込み始めたばかりで、1 つの質問があります。

私は 10 の店舗を持ち、それぞれに特定の従業員がいるビジネスを行っています。私のデータ ウェアハウスには、店舗を表すディメンションがあります。従業員ディメンションは SCD であり、開始/終了の列と、従業員が働いている店舗があります。

私のファクト テーブルは、従業員が (匿名で) 店長に提供する提案に基づいています。このテーブルには、提案の種類 (清潔さ、給与の問題など)、提案が提出された日付 (Time ディメンション テーブルにキー付けされた外部)、および提案が提出された店舗が含まれています。

私がやりたいことは、特定の年の従業員数に対する提案数の比率を示すレポートを作成することです。従業員の数は定期的に変化するため、従業員の総数について簡単なクエリを実行することはできません。

残念ながら、私は解決策を見つけるためにウェブをかなり検索しましたが、例の大部分は小売ベースの販売であり、これは私がやろうとしていることとは異なります.

どんな助けでも大歓迎です。私のマシンには AdventureWorksDW がインストールされているので、それを使用する提案があれば参考にしてください。

前もって感謝します!

4

2 に答える 2

1

ゆっくりと変化するディメンションには、行のソースを識別する自然キーが必要です (そうしないと、変更を検出するために何を比較する必要があるかがわかります)。これは、ディメンションのすべての反復間で一定である必要があります。自然キーの個別の数を計算することで、従業員の数を取得できます。

編集:トランザクションテーブル(提案)に日付がある場合、提案日付の計算関数(例:)datepart (yy, s.SuggestionDate)とビジネスユニットによってグループ化された従業員の個別の数がそれを行う必要があります。該当する行はトランザクション テーブルに直接結合する必要があるため、従業員ディメンションの日付について心配する必要はありません。

于 2009-06-15T14:50:45.647 に答える
0

各店舗の各月の従業員数の別のファクト テーブルを追加します。月の最大数を使用できます。次に、その年の平均月数を「年間従業員数」とします。

毎月末に新しいファクト テーブルを読み込みます。新しいテーブルは次のようになります。

ファクト テーブル: EmployeeCount

KeyEmployeeCount int -- 代理キー

KeyDate int -- 日付ディメンションへの外部キー、月の最終日を指す

KeyStore int -- ディメンションを格納するための FK

NumberOfEmployes int -- (最大) 特定の店舗のその月の従業員数

より細かい解像度が必要な場合は、「週ごと」または「日ごと」を使用してください。主なアイデアは、特定の店舗の NumberOfEmployes メジャーを 1 年にわたって平均化することです。

于 2009-10-27T14:07:46.067 に答える