两个字段完全相同的表格 A,B 的数据合并,如果名称相同的,则字段相加,如果没有的就新增
A表:Name, Money
a 100
b 200
B表:Name, Money
a 150
c 200
----------------------
合并到A表后
A表:Name, Money
a 250
b 200
c 200
------最佳解决方案--------------------
update A set money=b.money
from A inner join (
select name,SUM(money) money
from(
select name,money
from A
union all
select name,money
from B) as c
group by name) as d on a.name=d.name
insert into A(name,money)
select *
from B where not name in (select name from A)
------其他解决方案--------------------
在1楼的基础上继续加字段咯
UPDATE A
SET money = b.money ,
num = b.num
FROM A
INNER JOIN ( SELECT name ,
SUM(money) money ,
SUM(num) num
FROM ( SELECT name ,
money ,
num
FROM A
UNION ALL
SELECT name ,
money ,
num