-- 更新
UPDATE 表A 
SET 表A.Field2 = Field2 + 表B.Field2
    表A.Field3 = Field3 + 表B.Field3
FROM 表B
WHERE 表A.ID = 表B.ID-- 添加
INSERT INTO 表A
SELECT 表B.* 
FROM 表A RIGHT OUTER JOIN 表B ON 表A.ID = 表B.ID 
WHERE 表A.ID IS NULL

解决方案 »

  1.   

    我的理解是这样的:如果field1相同,则a.field1+b.field1,和a.field2+b.field2相加。否则,将数据从B插入到A
    1、将相同主键的相加写入到A
    update a set 
       a.field3=ISNULL(a.field3,0)+(select max(ISNULL(b.field3,0)) from b where b.field1=a.field1),
       a.field2=ISNULL(a.field2,0)+(select max(ISNULL(b.field2,0)) from b where b.field1=a.field1)2、将不同主键的值插到A
      insert into a 
      select * from b where  b.field1 not in (select a.field1 from a)