我是SQL新手,但是我认为我已经接近完成了,只是做了一些微不足道的调整,我似乎无法解决。我想要三列:
第一个是日期,它是每周的第一天星期日
第二个是每周销售总额,对应于上面日期中引用的一周
第三名是去年的每周总销量,同一日期段
我认为我的问题出在GROUP BY
。
包含的代码产生的输出给出当年正确的每周销售总额,但是仅当没有上一年的销售数据时才如此。一旦出现合并记录,即本周和去年一周的销售量,汇总数将激增。如下
WEEK THIS YEAR LAST YEAR
2018-12-02 11,558.16
2018-12-09 11,648.12
2018-12-16 11,770.44
2018-12-23 8,077.46
2018-12-30 610,662.87 446,140.5
2019-01-06 590,095.54 475,286.5
2019-01-13 615,523.26 543,748.75
order_entry_date是标准文本的年,月,日格式 ord.total是每笔交易的销售额。每天多次交易
SELECT date("orders_tbl"."order_entry_date") AS "Week",sum("orders_tbl"."ord_total") AS "This Year", sum("orders_tbl_2"."ord_total") AS "Last Year"
FROM "orders_tbl"
LEFT JOIN "orders_tbl" "orders_tbl_2" ON date("orders_tbl"."order_entry_date","-1 year") = "orders_tbl_2"."order_entry_date"
WHERE ("orders_tbl"."record_type" = 1
AND "orders_tbl"."voided_order" = 0
AND date("orders_tbl"."order_date") BETWEEN date(datetime(date('now'), '-365 days')) AND date(datetime('now')))
GROUP BY date("orders_tbl"."order_entry_date", '-6 days', 'weekday 0')
--GROUPGROUP BY date("orders_tbl"."order_entry_date", '-6 days', 'weekday 0'), "orders_tbl_2"."order_entry_date"
--GROUP BY date("orders_tbl"."order_entry_date", '-6 days', 'weekday 0'), date("orders_tbl_2"."order_entry_date", '-6 days', 'weekday 0','-1 year')"
ORDER BY date("orders_tbl"."order_entry_date") ASC