作者HelloJimmy (揪~~竟,能不能考上?)
看板Database
標題[SQL ] 兩張資料表的內容呈現在一張報表上?
時間Thu Oct 15 23:39:01 2015
資料庫名稱:mySQL
資料庫版本:5.6
內容/問題描述:
假設我有兩個Table A、B,
Table A如下:
user_id drive_distance(km) working_date
------- -------------- ------------
Tom 100 2015-08-25
John 250 2015-09-15
Tom 400 2015-09-30
Kevin 200 2015-10-14
Table B如下:
user_id fuel_liter(L) fueling_date
------- ---------- ------------
Tom 20 2015-09-01
Tom 15 2015-10-08
John 30 2015-09-15
(kevin沒加油)
如果我想做出每個人員在8月到十月的總里程、總油耗、平均油耗報表,
該如何下SQL?希望呈現下列欄位:
user_id total_dis(Km) total_oil(L) average_oil(Km/L)
------- ------------- --------- -----------
Tom 500 35 14.2
John 250 30 8.3
Kevin 200 0 0.0
有點複雜,
謝謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.109.156
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1444923544.A.8B0.html
推 mathrew: A left join B , 然後再做 sum 計算 10/16 06:36
→ HelloJimmy: 若用left join,會有重複計算的問題。假設Tom在A有 10/16 12:02
→ HelloJimmy: 兩筆紀錄,在B僅有一筆紀錄,則SUM的結果會變兩倍。 10/16 12:03
→ lbeeon: 那就先sum在left join? 10/16 12:46
推 mathrew: 對 你說的沒錯 要先 sum 再 left join 10/16 16:54
→ HelloJimmy: 依照lbeeon的方法OK了 謝謝! 10/19 00:51