我有两张桌子。
包含客户和日期的订单表。来自数据仓库的日期维度表。
订单表不包含给定月份中每个日期的活动,但我需要返回一个结果集,以填补日期和客户的空白。
例如,我需要这个:
客户日期 ================================ 客户 1 2012 年 1 月 15 日 客户 1 2012 年 1 月 18 日 Cust2 2012 年 1 月 5 日 客户 2 2012 年 1 月 8 日
看起来像这样:
客户日期 ============================== 客户 1 2012 年 1 月 15 日 客户 1 2012 年 1 月 16 日 客户 1 2012 年 1 月 17 日 客户 1 2012 年 1 月 18 日 Cust2 2012 年 1 月 5 日 客户 2 2012 年 1 月 6 日 客户 2 2012 年 1 月 7 日 客户 2 2012 年 1 月 8 日
这似乎是一个左外连接,但它没有返回预期的结果。这是我正在使用的,但这并没有按预期返回日期表中的每个日期。
SELECT o.customer,
d.fulldate
FROM datetable d
LEFT OUTER JOIN orders o
ON d.fulldate = o.orderdate
WHERE d.calendaryear IN ( 2012 );