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