sql数据库报表问题
物流公司要运输货物有的直接运达,有的要中转,有的不需要。下面两个表就是中转的例子,但是苹果在中转的时候是分开运的,下面pay-1表示第一段运输的费用,pay-2表示第二段运输的费用现在要统计总的费用,如下
a表 b表
id name pay-1 id name pay-2
1 苹果 50 1 苹果 30
2 桃子 20 1 苹果 35
3 李子 70 2 桃子 56
4 杏子 24 3 李子 90
4 杏子 78
select a.*,sum=a.pay-1+b.pay-2 from a left join b on a.id=b.id
得到c表
id name pay-1 pay-2 sum
1 苹果 50 30 80
1 苹果 50 35 85
2 桃子 20 56 76
3 李子 70 90 160
4 杏子 24 78 102
现在出现问题了,苹果的第一段运输费用被加了两次,怎样才能避免呢?
或者怎样才能得到如下所示呢?请高手指点
id name pay-1 pay-2 sum
1 苹果 50 30 80
1 苹果 -- 35 85
2 桃子 20 56 76
3 李子 70 90 160
4 杏子 24 78 102
[解决办法]
select a.id,a.name,a.pay-1,sum=a.pay-1+sum(b.pay-2)
from a left join b on a.id=b.id
group by a.id,a.name,a.pay-1