看板 Database 關於我們 聯絡資訊
資料庫名稱: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