日期:2014-05-19  浏览次数:20411 次

求一个关于update的sql
表a
id       Date                 Name             in             money
1         2007-4-11       abc                 200             100
2         2007-4-11       abc                 100             200
3         2007-4-11       abc               -500           -300
4         2007-4-11       abc                 100           -200
5         <NULL>             <NULL>         -100           -200  
6         2007-4-11       def               -200             500
7         2007-4-11       def                 100             600                
8         2007-4-11       def               -400             200            
9         <NULL>             <NULL>         -500             200

in那一列表示资金流动情况,money那一列表示期末资金余额。当前余额加上下一笔交易的资金流动,就会得出下一笔的余额,如id1记录余额为100,id2有100资金流入,那么id2中的余额就是100+100=200,id3有500资金流出,那么id3中的余额就是200-500=-300。

date和name都是null值的那一行是对前面几条的合计,如id5的记录,资金流动情况是200+100-500+100=-100,期末资金余额即最后一笔记录(id4)的余额-200

现在想把这个表的数据更新一下,把null更新成相应的值,如下
id       Date                 Name             in             money
1         2007-4-11       abc                 200             100
2         2007-4-11       abc                 100             200
3         2007-4-11       abc               -500           -300
4         2007-4-11       abc                 100           -200
5         2007-4-11       abc合计       -100           -200  
6         2007-4-11       def               -200             500
7         2007-4-11       def                 100             600                
8