有一张表如下:字段:   aaa    bbb      date
记录:   10     10     2008-01-01
        10     20     2008-01-02
        10     30     2008-01-03
        20     50     2008-01-04
        20     70     2008-01-05说明:本天bbb值=等于上一天的bbb值+本天的aaa值,急求批量更新的sql写法,例如更新2008-01-03以后的,谢谢!

解决方案 »

  1.   

    update table A
    set bbb = aaa + (select bbb from table where date+1=A.date)
      

  2.   

    或者:UPDATE TB A SET BBB = (SELECT SUM(AAA) FROM TB B WHERE B.DATE<A.DATE)
    WHERE A.DATE>TO_DATE('2008-01-03','YYYY-MM-DD');
      

  3.   

    update table A set bbb = aaa + (select bbb from table date+1 = a.date)学到了!~~
      

  4.   

    如果记录是唯一的话,可以像楼上所说的那样做,不过日期应该改成:to_date(date,‘yyyy-mm-dd’)的形式才能保证跨越的准确性;我建议该表增加一个字段,用来存储aaa+bbb,不然楼主的数据可要全部毁掉了