改写我的原始帖子以进一步澄清。
我目前有下表:
产品_参考
- product_id
- 产品名称
产品
- product_id
- so_date(日期)
- 总销售额
日历
- dt(日期字段,每一行代表过去/未来 10 年的一天)
我希望生成一份报告,该报告将告诉我过去 6 个月(基于 SYSDATE)每天销售的产品数量,该报告应该是过去 6 个月中每个可能的 product_id 的每一天组合格式:
产品编号 | 日期 | 总销售额
如果我假设产品表中有 0 个条目(即没有销售),我仍然希望得到完整的报告输出,但它会显示 6 个月的零数据,即
1 | 2012-01-01 | 0
2 | 2012-01-01 | 0
3 | 2012-01-01 | 0
1 | 2012-01-02 | 0
2 | 2012-01-02 | 0
3 | 2012-01-02 | 0
…
这将假设 product_reference 表中有 3 种产品 - 我的原始查询(如下所述)是我的 10 种产品,但不确定从这里去哪里。
SELECT products.product_id, calendar.dt, products.total_sales
FROM products RIGHT JOIN calendar ON (products.so_date = calendar.dt)
WHERE calendar.dt < SYSDATE AND calendar.dt >= ADD_MONTHS(SYSDATE, -7)+1
ORDER BY calendar.dt ASC, products.product_id DESC;