作者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://webptt.com/cn.aspx?n=bbs/Database/M.1444923544.A.8B0.html
1F:推 mathrew: A left join B , 然後再做 sum 计算 10/16 06:36
2F:→ HelloJimmy: 若用left join,会有重复计算的问题。假设Tom在A有 10/16 12:02
3F:→ HelloJimmy: 两笔纪录,在B仅有一笔纪录,则SUM的结果会变两倍。 10/16 12:03
4F:→ lbeeon: 那就先sum在left join? 10/16 12:46
5F:推 mathrew: 对 你说的没错 要先 sum 再 left join 10/16 16:54
6F:→ HelloJimmy: 依照lbeeon的方法OK了 谢谢! 10/19 00:51