日期:2014-05-17  浏览次数:21029 次

两列相加把结果放入其中一列
问题是这样的,如果a列中有数值改变,则把与改变的数值对应的parent一样的数字都与b列相加,放入b列,例如
parent a b parent a b
1 0 1 1 2 5
1 0 1 改变后 1 0 5
1 0 1 1 3 5
2 0 2 2 1 4
2 0 2 2 1 4
建一个触发器,谢谢阿

------解决方案--------------------
先改变A的值然后执行
update table a set b=(select sum(a) from table where parent=a.prrent)
where prrent='你修改那条记录中parent的值'
------解决方案--------------------
parent a b parent a b 
1 0 1 1 2 5 
1 0 1 改变后 1 0 5 
1 0 1 1 3 5 
2 0 2 2 1 4 
2 0 2 2 1 4 

_________________________________________________
a=3,b的值没有变?
------解决方案--------------------
在触发器中不能对基表做update 可以把计算出来的值赋给:new.COUNT_PIPE_L
SQL code


      select :new.parent into temp_parent from dual; 
      update pro_schedule set COUNT_PIPE_L=(select sum(NEW_PIPE_L) from pro_schedule where parent=temp_parent); 
换成
v_b  number(10);

      temp_parent := :new.parent ;
      select sum(NEW_PIPE_L)
        into : v_b
        from pro_schedule 
       where parent=temp_parent;
        :new.COUNT_PIPE_L = v_b;