a和b表结构一样,均由一个key字段和一个value字段组成,其中key是主键现在想写一个sql,把a的value值加上b表中,相同key值的记录对应的value相当于把a表变成(select a.key, a.value + b.value from tmp_test_a a, tmp_test_b b where a.key=b.key)举例如下:
a
key value
--- ---
001 11
002 22b
key value
--- ---
001 11
002 22期望将a修改成
a
key value
--- ---
001 22
002 44

解决方案 »

  1.   

    SQL>update a set value = value + (select nvl(b.value, 0) from b where b.id = a.id);
      

  2.   

    update a set value= (select sum(a.value+b.value) from b where a.key=b.key group by b.key)
      

  3.   

    谢谢 原来=号后面可以加sql的 
      

  4.   

    谢谢 原来=号后面可以加sql的 
      

  5.   

    或者通过视图更新
    SQL> update (select nvl(b.value, 0) v1, a.value v, a.value value from a, b where
     a.id=b.id(+)) set v = v+v1;这个需要和有主键约束或者是unique的约束。