得用游标。
 对A表建游标,然后每一项分别执行下面的语句:update Table_a set fieldb=fieldb+(select sum(FieldB) from table_b where fielda=Table_A.fielda ) where fielda=每一项的值。

解决方案 »

  1.   

    这么麻烦啊!
    一句话就可以:
    update table_a set fieldb = fieldb + (select sum(fieldB) bsun from table_b 
                                 where fieldA = table_a.fieldA group by fieldA)不过在使用的时候必须保证table_a.fieldA不重复。
      

  2.   

    Update Table_A set FieldB=FieldB+B.FieldB_Sum
        From Table_A A, (Select FieldA, Sum(FieldB) As FieldB_Sum From Table_B Group by FieldA) B
        Where A.FieldA=B.FieldA
      

  3.   

    update table_a set fieldb = fieldb + (select sum(table_b.fieldB) bsun from table_b where table_b.fieldA = table_a.fieldA group by table_b.fieldA)
      

  4.   

    update table_a set field_b=field_b+c.b_sum
    from (select b.field_a as a,sum(b.field_b) as b_sum from table_b as b group by b.field_a) as c
    where table_a.field=c.a
      

  5.   

    robber,好像用不着group吧?
    我看:
    update table_a set fieldb = fieldb + (select sum(fieldB) from table_b 
                                where fieldA = table_a.fieldA )
    足矣!
      

  6.   

    这里基本分2种方法:
    A.
    update table_a set fieldb = fieldb + (select sum(fieldB) from table_b 
                                where fieldA = table_a.fieldA )
    B.
    Update Table_A set FieldB=FieldB+B.FieldB_Sum
        From Table_A A, (Select FieldA, Sum(FieldB) As FieldB_Sum From Table_B Group by FieldA) B
        Where A.FieldA=B.FieldA 这2种以A为简单,速度也比较快(Table_B表一定要有fieldA的索引)。B仅适合在Table_A表记录数很少,且Table_B表较大的情况,因为它对Table_B表只进行一次扫描。
      

  7.   

    可以这样写:
    select FieldA,sum(FieldB) as FieldB into Table_A from Table_B
    group by FieldA
      
    这样OK.