例如:
表A:goodsId   detail_id    count
      A        001           15
      B        002           10
      C        003           5
      D        004           20表B: goodsId   detail_id    count
      A        001           10
      B        002           10
      C        003           10
      D        004           10用表根据表A的goodsId和detail_id更新表B的count,表B的count加上表A的count;

解决方案 »

  1.   


    update B
    set [count]=b.count+a.count
    from b ,a
    where a.goodsId=b.goodsId and a.detail_id=b.detail_id 
      

  2.   

    update b set b.[count]=b.[count]+a.[count] from tb b ,ta a where a.goodsId=b.goodsId and a.detail_id=b.detail_id
      

  3.   

    update b set b.[count]=b.[count]+a.[count] from tb b ,ta a
    where a.goodsId=b.goodsId and a.detail_id=b.detail_id
      

  4.   

    update 
      b
    set 
      [count]=b.[count]+a.[count]
    from 
      表A a,表B b 
    where 
      a.goodsId=b.goodsId and a.detail_id=b.detail_id 
      

  5.   

    update CC set [count]=c.[count]+a.[count] from CC c inner join AA a
     on a.goodsId=c.goodsId and a.detail_id=c.detail_id 
      

  6.   


    --create database A
    --go
    use A 
    go
    if object_id('A') is null
    create table a(a1 nvarchar(20),a2 nvarchar(20),num nvarchar(20),status nvarchar(20))
    go
    delete from a
    insert into a values('xx','yy','3','P')
    select * from a
    go
    --create database B
    --go
    use B 
    go
    if object_id('B') is null
    create table B(a1 nvarchar(20),a2 nvarchar(20),num nvarchar(20),status nvarchar(20))
    go
    delete from b
    insert into B
    select 'xx', 'yy',  '1',    'S' union all select 
    'xx', 'yy',  '2',    'Q'  union all select 
    'xx', 'yy',  '3',    'T' 
    go
    select * from B
    [code=SQL]
    update B..b set B..b.status=A..a.status from A..a inner join B..b on A..a.a1 = B..b.a1  AND A..a.a2 = B..b.a2 And A..a.num=B..b.num[/code]