有一個表,結構如下日期 datetime,
單據號 nvarchar(50),
收入 money,
支出 money我現在想根據這個表的收入和支出情況,按日期從小到大計算出 每一筆記錄 後的結余,用游標可以實現,但系統開消比較大,需一條條讀數據然後再計算才得出結果,請問各位高手是否有比用游標更有效率的辦法呢?
單據號 nvarchar(50),
收入 money,
支出 money我現在想根據這個表的收入和支出情況,按日期從小到大計算出 每一筆記錄 後的結余,用游標可以實現,但系統開消比較大,需一條條讀數據然後再計算才得出結果,請問各位高手是否有比用游標更有效率的辦法呢?
你试下
http://topic.csdn.net/u/20080618/09/ca4d1144-8087-4d2c-b76f-0c64d546b205.html
和你的问题相类似
是截止到这个笔的結余:
select *,(select sum(收入-支出) from 表 where 日期<=a.日期) as 結余
from 表 as a order by 日期还是每一笔的結余:
select *,收入-支出 as 結余 from 表 order by 日期
select 日期,isnull(收入,0) as 收入,isnull(支出,0) as 支出,0 as 结余 into #tmp from table1 order by 日期--计算结余
declare @结余 money
set @结余=0
update #tmp set @结余=@结余+isnull(收入,0)-isnull(支出,0),结余=@结余--查询记录
select * from #tmp
drop table #tmp