SQL:实现流水账的收入、支出、本期余额

有多组数据,分别是收入,支出,余额,它们的关系是:
本期余额=上次余额+收入-支出

/*
测试数据:
Create Table tbl([日期] smalldatetime,[收入] int ,[支出] int) 

Insert Into tbl
SELECT '2004-02-11', 60, 45
union SELECT '2004-10-01',60, 45
union SELECT '2004-10-02',40, 50
union SELECT '2004-10-15',50, 40
union SELECT '2004-10-16',10, null
union SELECT '2004-10-19',10, 0
union SELECT '2004-10-30',0, 10
*/ 
--select *,(select sum(收入-支出) fromwhere 你的表的主键<=tem.你的表的主键) 本次余额 from 表 tem 

select t.日期,t.收入,t.支出,(select sum(ISNULL(收入, 0))-sum(ISNULL(支出, 0)) from tbl where 日期 <= t.日期) as 本期余额 
from tbl t order by 日期 desc
原文地址:https://www.cnblogs.com/Fooo/p/4070030.html