SQL 查询时游标使用
我现在有如下表内容:
月份	科目代码	客 户	本月借方	本月贷方
			本位币(RMB)	本位币(RMB)
1	102001	工行(RMB)	 340.00 	 350.00 
1	102002	工行(USD)	 430.00 	 400.00 
1	102003	工行(HKD)	 200.00 	 -   
2	102001	工行(RMB)	 1,000.00 	 320.00 
2	102002	工行(USD)	 450.00 	 900.00 
2	102003	工行(HKD)	 -   	 780.00 
3	102001	工行(RMB)	 -   	 1,220.00 
3	102002	工行(USD)	 340.00 	 340.00 
3	102003	工行(HKD)	 432.00 	 230.00 
我现在想查询出来的结果显示为:
月份	科目代码	客 户	上月余额	本月借方	本月贷方	本月余额
			本位币(RMB)	本位币(RMB)	本位币(RMB)	本位币(RMB)
1	102001	工行(RMB)	 1,000.00 	 340.00 	 350.00 	 990.00 
1	102002	工行(USD)	 1,200.00 	 430.00 	 400.00 	 1,230.00 
1	102003	工行(HKD)	 900.00 	 200.00 	 -   	 1,100.00 
1		合计	 3,100.00 	 970.00 	 750.00 	 3,320.00 
2	102001	工行(RMB)	 990.00 	 1,000.00 	 320.00 	 1,670.00 
2	102002	工行(USD)	 1,230.00 	 450.00 	 900.00 	 780.00 
2	102003	工行(HKD)	 1,100.00 	 -   	 780.00 	 320.00 
2		合计	 3,320.00 	 1,450.00 	 2,000.00 	 2,770.00 
3	102001	工行(RMB)	 1,670.00 	 -   	 1,220.00 	 450.00 
3	102002	工行(USD)	 780.00 	 340.00 	 340.00 	 780.00 
3	102003	工行(HKD)	 320.00 	 432.00 	 230.00 	 522.00 
3		合计	 2,770.00 	 772.00 	 1,790.00 	 1,752.00 
其中本月余额=上月余额+本月借方-本月贷方
上月余额 = 上一月对应科目本月余额
------最佳解决方案--------------------首先要知道1月份的上月余额是怎么得来的,这个是计算后续数据的根基。
实现并不难,不需要游标,left join月份错位就可以了:
tb a left join tb b on a.月份=b.月份+1 and a.科目代码=b.科目代码
------其他解决方案--------------------游标的效率有的时候很差,能不用尽量少用。
------其他解决方案--------------------结贴,自己想到办法了,谢谢大家