日期:2014-05-17  浏览次数:20365 次

求表格数据合并的脚本(紧急)
两个字段完全相同的表格 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 ,
                 &nbs