0
我打印出每个州的总销售额,只要该月的销售额超过6000美元即可。结果需要按月排序(降序)。我注意到我在同一个月得到了2个得克萨斯州的结果。所以告诉我的是,只是寻找超过6,000美元的个人销售额,尽管我有一笔总额(so.total),我认为这个总额会在本月订购。不知道如何通过每个人每月以打破销售如果order_date的字段日 - 月 - 年它(使用Oracle 10g)按月订购总销售额
输入:
SELECT c.state "State",to_char(so.order_date, 'Month')"Month", sum(so.total)"Sales"
FROM a_customer c
JOIN a_sales_order so ON c.customer_id=so.customer_id
GROUP BY c.state, so.order_date
HAVING sum(so.total)>6000
ORDER BY to_char(so.order_date, 'MM') desc
输出:
State Month Sales
----- --------- --------
TX September $8,400
CA July $8,377
TX March $7,700
TX March $8,540
CA February $46,370
MN February $6,400
CA February $24,650
这工作,但我想更好地了解顺序。您将order_date更改为月份的char值,那么您将char值更改为以一个月为单位的日期值? – Student
实际上,您将ORDER_DATE截断为TO_CHAR中的月份部分,如果您只是这样做了,那么订单将仅在月份字符串而不是月份值。因此,您必须再次TO_DATE才能获得按时间顺序排列的顺序。 – Ollie