首先确定bm,ck组合是否唯一,如果唯一,可以试试这个:
UPDATE A SET TOTAL = TOTAL +
(SELECT B.SL FROM B WHERE A.BM=B.BM AND A.CK=B.CK);

解决方案 »

  1.   

    update 表a a set a.total=(select a.total+b.s1 from 表b b where a.bm=b.bm and a.ck=b.ck)
    where exists(select 1 from 表b b where a.bm=b.bm and a.ck=b.ck);
      

  2.   

    建议用 ORARichard(没钱的日子......) 的方法,因为这样可以避免把不满足条件的数据置为空!
      

  3.   

    同意 ORARichard(没钱的日子......)
      

  4.   

    同意 ORARichard
    但如果不唯一呢????
      

  5.   

    如果不唯一的话,那就是表结构设计的问题了,按楼主的表来看,( bm,ck)应该相当于联合主键当然即使真的是不唯一的话也可以通过取B表按( bm,ck)分组的sl的最大或最小值来更新