做一个收支统计的软件,数据库里面有收入表和支出表。想做一个统计,比如按年月来统计,
收入表:
日期 金额
2009-12-08 500
2009-12-23 500
2010-01-08 200
2010-01-12 800
支出表:
日期 金额
2009-12-10 200
2009-12-15 300
2010-03-10 400
我希望出现的结果如下:
年月 收入 支出
2009-12 1000 500
2010-01 1000 0
2010-02 0 0
2010-03 0 400
也就是说时间是连续的,大家注意有的月份是没有收入或支出,它的数据那就是零。
问题:
该如何实现这个效果?
------解决方案--------------------------------------------------------
生成完整的年月,再与工作表连接,
select 日期,sum(iif(金额>0,金额,0)) as 收入,
sum(iif(金额<0,金额,0)) as 支出 from (
select 日期,金额 from 收入表
union all
select '2009-1-1',0
union all
select '2010-1-1',0
union all
select '2010-2-1',0
union all
select '2010-3-1',0
union all
select 日期,金额*-1 from 支出表)
group by 日期
------解决方案--------------------------------------------------------
你用的是什么数据库?