这里我在第一列显示订单的年份,第二个月显示Order_id,第三个显示Order_id。我想按月份,按年份和总计显示总计。WITH ROLLUP无法正常工作
这是我想要得到的结果:
月总,总年和总计。
这里是我的查询:
SELECT coalesce(extract(year FROM order_date), 'Grand Total') as 'Year'
, CASE when extract(year FROM order_date) is null then ' '
when extract(month FROM order_date) is null then 'Year total'
else extract(month FROM order_date)
END as `Month`
, CASE when extract(month FROM order_date) is null Then ' '
else coalesce(oh.order_id, 'Month Total')
END as 'Order ID'
, sum(quantity * order_price) AS 'AmntDue'
, sum(quantity) AS 'NumBooksPurch'
FROM a_bkorders.order_headers oh
JOIN a_bkorders.order_details od on oh.order_id = od.order_id
GROUP BY extract(year FROM order_date), extract(month FROM order_date), oh.order_id with rollup
;
但是,这是我得到:
月份总似乎很好地工作,但不是每年总或共展宏图。我无法理解我做错了什么。
你可以发布一个数据样本,供我们用小提琴重现结果吗? –
当然,我在这个链接上附加了数据库a_bkorders.order_headers的.sql文件:https://drive.google.com/file/d/0B8bvMX0U7f71SFFUR0RaTkVhOTA/edit?usp=sharing –
所以我知道问题在哪里,但我不完全确定解决方案是什么。我现在正在处理它......基本上,汇总只会被应用到你的order_id列..所以你正在得到你想要的结果......只是通过搞乱我得到了1总计和3年总计结果,然后是月总计,但它不正确,所以我会看看我能做些什么..但我不是一个MySQL专家,所以我可以引用别人来解决这个问题,如果我无法弄清楚: ) –