我有这样一张业务表,表结构如下
(ID) 住宿时间 押金金额 退宿时间 住宿费用
00000001 2009-09-21 50 2009-09-28 30
00000001 2009-09-25 50 2009-09-27 30
00000002 2009-09-25 80 2009-09-28 50
00000003 2009-09-28 90 2009-09-30 40
........ .. .......... ..
........ .. .......... ..
请问各位如何可以得到每一天结余汇总
也就是查出来的形式向这样
时间 收到押金 退回押金 结余
2009-09-21 50 0 50
2009-09-25 130 0 130
2009-09-27 20 -20
2009-09-28 90 50 40
2009-09-30 50 -50
查询的结果最好可以按照时间段来查,有劳大家帮个忙了,谢谢
select zs.zssj, zs.yj, t.tyj, zs.yj - nvl(t.tyj, 0) as jy
from (select a.zssj, sum(yjje) as yj from table_name a group by a.zssj) zs
left join (select a.tssj, sum(yjje) as tyj
from table_name a
group by a.tssj) t
on zs.zssj = t.tssj
order by zs.zssj
建议你写一个存储过程处理一下,因为有可能一次交N天的压金,虽然只有一条数据,但每天的结存里都需要有,用存储过程处理比较方便,
按照日期每天把结存保存到一个表,然后再从表中取数据就方便了