一般的なデータウェアハウスの問題があります。SQLの欠落した日付
私がやっていることは、日付間にギャップがないSQLクエリを作成することです。
ファクトテーブルは、測定されてテーブルに記録されたレコードのみを登録します。このケースは、海上の船舶に登録された石油生産に関するものです。いくつかの日には船の一部にはプロダクションはありません。
私の単純なデータウェアハウスはDimVessel
,DimDate
およびFactProduction
です。そして、あなたの下に、私が望む最終的な結果セットが表示されます。
容器に生産物がない場合でも、ファクトテーブルにvesselkey
とProduction
を記入するSQLクエリが必要です。いくつかの船には生産があり、他の日にはすべての船があることを忘れないでください(最善のケース)。
誰かが私をここで助けてくれることを願っています。
DimVessel
VesselKey| VesselName
1 | Vessel 1
2 | Vessel 2
3 | Vessel 3
4 | Vessel 4
5 | Vessel 5
DimDate
DateKey |Date
20160517 |2016-05-17 00:00:00.000
20160518 |2016-05-18 00:00:00.000
20160519 |2016-05-19 00:00:00.000
20160520 |2016-05-20 00:00:00.000
FactProduction
DateKey |VesselKey |Production
20160517 |4 |12505
20160517 |5 |1276
20160517 |3 |88
20160517 |2 |3919
20160518 |4 |8785
20160518 |5 |736
20160518 |1 |3754
20160518 |2 |5654
20160519 |2 |1654
20160520 |1 |2016
20160520 |3 |6059
20160520 |4 |10980
20160520 |5 |663
これはどのようなIワシントン州最終結果セット:
DateKey |VesselKey |Production
20160517 |4 |12505
20160517 |5 |1276
20160517 |3 |88
20160517 |2 |3919
20160517 |1 |0
20160518 |4 |8785
20160518 |5 |736
20160518 |3 |0
20160518 |1 |3754
20160518 |2 |5654
20160519 |2 |1654
20160519 |1 |0
20160519 |3 |0
20160519 |4 |0
20160519 |5 |0
20160520 |1 |2016
20160520 |3 |6059
20160520 |2 |4059
20160520 |4 |10980
20160520 |5 |663
誰かがあなたを確認するのに役立ちます。人間が読めるように質問を書式化した場合、これまで行ってきたことを示して、あなたの問題が何であるか教えてください。 –
左の結合に精通していますか? –
私はあなたの質問の文法にいくつかの訂正をしました。彼らが何らかの形で意味を変えたら、私の編集を元に戻してください。 –