SQLite:如何按周比较年度销售额

时间:2019-09-01 00:28:51

标签: sqlite compare

我是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

0 个答案:

没有答案