sql 求两张表中同一字段数值相加

A表: A1 A2 B表: A1 A2
1001 5.3 1001 2.1
1002 2.1 1003 1.6
想得到的结果: A表 A1 A2
1001 7.4 (A和B表的A2字段相加)
1002 2.1 (A表有1002,B表没有,所以A2不变)
1003 1.6 (B表有1003,A表没有,也插入到A表)

INSERT INTO A (A.A1) SELECT
B.A1
FROM
B
WHERE
B.A1 NOT IN (SELECT A.A1 FROM A);
UPDATE A,(SELECT C.A1, SUM(C.A2) AS A2 FROM ( SELECT * FROM A UNION ALL SELECT * FROM B ) C GROUP BY A1)D SET A.A2 = D.A2 WHERE A.A1 = D.A1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-22
SELECT C.A1 ,SUM(C.SL) FROM (select A1 ,sum(A2) AS SL FROM A group by A1 union all select A1 ,sum(A2) FROM B group by A1) C group by C.A1