明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

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

Posted on 2014-11-02 21:43  且行且思  阅读(9970)  评论(0编辑  收藏  举报

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

 

 

/*
测试数据:
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