我有我猜测的是一个常见的数据仓库问题。SQL填写缺少日期
我一直在试图做的是做一个SQL日期之间没有差距的查询。
事实表只记录被测量并记录到表中的记录。这个案例涉及海上船只的注册石油生产。有些日子有些船上没有生产。
所以这里是我的简单数据仓库:DimVessel
,DimDate
和FactProduction
。在下面你看到我想要的最终结果集。
我希望SQL Query能够用vesselkey
和Production
填充事实表,即使船上没有生产。请记住,有些日子可能会在少数船舶上生产,其他日子可能会生产所有船舶(最好的情况)。
我希望有人能帮助我。
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
这是我はnt,最终结果集:
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
有人会帮你确定。如果您将问题的格式设置为人类可读,如果您向我们展示了迄今为止所做的工作,并且告诉我们您的问题到底是什么 –
您是否熟悉左连接? –
我对你的问题的语法做了一些修改;如果他们以任何方式改变了含义,请随时回滚我的编辑。 –