首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 查询时游标应用

2013-01-04 
SQL 查询时游标使用我现在有如下表内容:月份科目代码客 户本月借方本月贷方本位币(RMB)本位币(RMB)1102001

SQL 查询时游标使用
我现在有如下表内容:
月份科目代码客 户本月借方本月贷方
本位币(RMB)本位币(RMB)
1102001工行(RMB) 340.00  350.00 
1102002工行(USD) 430.00  400.00 
1102003工行(HKD) 200.00  -   
2102001工行(RMB) 1,000.00  320.00 
2102002工行(USD) 450.00  900.00 
2102003工行(HKD) -    780.00 
3102001工行(RMB) -    1,220.00 
3102002工行(USD) 340.00  340.00 
3102003工行(HKD) 432.00  230.00 

我现在想查询出来的结果显示为:
月份科目代码客 户上月余额本月借方本月贷方本月余额
本位币(RMB)本位币(RMB)本位币(RMB)本位币(RMB)
1102001工行(RMB) 1,000.00  340.00  350.00  990.00 
1102002工行(USD) 1,200.00  430.00  400.00  1,230.00 
1102003工行(HKD) 900.00  200.00  -    1,100.00 
1合计 3,100.00  970.00  750.00  3,320.00 
2102001工行(RMB) 990.00  1,000.00  320.00  1,670.00 
2102002工行(USD) 1,230.00  450.00  900.00  780.00 
2102003工行(HKD) 1,100.00  -    780.00  320.00 
2合计 3,320.00  1,450.00  2,000.00  2,770.00 
3102001工行(RMB) 1,670.00  -    1,220.00  450.00 
3102002工行(USD) 780.00  340.00  340.00  780.00 
3102003工行(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.科目代码

[解决办法]
游标的效率有的时候很差,能不用尽量少用。

热点排行