TABLE   A(object_id,name,type,weight) 
TABLE   B(name,weiht)
A中type可以取1,2,3,4四个值  同一个name可以对应多个object_id
要把A中所有同一name的type为1和2的物品weight的和减去type为3和4的物品weight的和作为B中的weight,不创建第三张表怎么实现

解决方案 »

  1.   

    insert into b(name,weight)
    select name,sum(case type when 1 then weight when 2 then weight when 3 then -weight when 4 then -weight end) weight from a group by name
      

  2.   


    select name,sum(decode(type,1,weight,2,weight,3,weight,4,-weight)) from tableA group by name
      

  3.   

    insert into B
    --如果type为3、4则weight为负
    select name,sum(decode(type,1,weight,2,weight,3,-weight,4,-weight)) 
    from A group by name