不用游标,批量将#B中的coin列的值加到#A表的coin中(注:保留重复值)
以下是表结构和参考数据
CREATE TABLE #A(id INT, coin INT)INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)
INSERT INTO #A VALUES(1,10)CREATE TABLE #B(id INT, coin INT)INSERT INTO #B VALUES(1,2)
INSERT INTO #B VALUES(2,2)
INSERT INTO #B VALUES(3,2)
INSERT INTO #B VALUES(3,2)
INSERT INTO #B VALUES(1,2)
INSERT INTO #B VALUES(1,2)

解决方案 »

  1.   

    数据错误了吧,#A的id全部相同?
      

  2.   

    insert into #b(coin) select coin from #a
      

  3.   

    还是
    insert into #b(id,coin) select id,coin from #a
      

  4.   

    不好意思 写错了 #A中的数据是这样的
    INSERT INTO #A VALUES(1,10)
    INSERT INTO #A VALUES(2,10)
    INSERT INTO #A VALUES(3,10)
    INSERT INTO #A VALUES(4,10)
    INSERT INTO #A VALUES(5,10)
    INSERT INTO #A VALUES(6,10)
    INSERT INTO #A VALUES(7,10)
      

  5.   

    #A中结果应该是这样的id coin
    1 16
    2 12
    3 14
    4 10
    5 10
    6 10
    7 10
      

  6.   

    insert into #a select * from #b where
      

  7.   

    不好意思,没说清楚 不是insert,是update.
    我是想得到两个表中的列coin值的和
    #A中结果应该是这样的: 
    id coin 
    1 16 
    2 12 
    3 14 
    4 10 
    5 10 
    6 10 
    7 10
      

  8.   


    select id,sum(coin) coin
    (select * from #a 
     unoin 
    select * from #b )
    group by id
      

  9.   

    update a
    set coin=a.coin+b.coin
    from #a a,(
    select id,sum(coin) as coin
    from #b
    group by id
    ) as b
    where a.id=b.id
      

  10.   

    update #A set coin=coin+isnull((select sum(coin) from #B where id=a.id),0) from #A as a