sql两个表数据求和

例如db1内数据
A B

1 X

1 X
3 S
3 S
db2内的数据
A B
3.5 X
1.2 X
1.8 S
5.9 S

需要的结果
A B
1 (4.7)
3 (7.7)
括号内的结果来自B列等于X的相加(相加条件是DB1 A列同名)

楼上的想法是这样,先把俩张表的数据都查出来,使用union关键字,相应列使用同样的同名。 这样可以把俩张表当成一张表来操作,应该是可行的。
select t.name , t.brand , t.type, t.package , sum(t.totalcount), sum(t.weight) from (
select 商品名称1 as name , 商品品牌1 as brand , 商品型号1 as type, 商品包装1 as package , 商品数量1 as totalcount, 商品重量1 as weight from 商品表1 union all
select 商品名称2 as name , 商品品牌2 as brand , 商品型号2 as type, 商品包装2 as package , 商品数量2 as totalcount, 商品重量2 as weight from 商品表2
) t group by t.name ,t.brand , t.type, t.package

但是我不明白的是,你这是俩张表吗,这是什么样的两张表。。。 完全一样的列,完全一样的类型,干吗要成两张表。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-10
SELECT DB1.A,SUM(DB2.A) as B 
FROM DB1 LEFT JOIN DB2 ON DB1.B=DB2.B 
GROUP BY DB1.A

 这是没有去重的,看你db1表数据有重复的,假如想去重的话可以加上DISTINCT

SELECT DISTINCT DB1.A,SUM(DB2.A) as B 
FROM DB1 LEFT JOIN DB2 ON DB1.B=DB2.B 
GROUP BY DB1.A

本回答被提问者采纳
相似回答