`
jessen163
  • 浏览: 463082 次
  • 性别: Icon_minigender_1
  • 来自: 潘多拉
社区版块
存档分类
最新评论

sql统计 本期 ,上期 ,去年同期 数据

SQL 
阅读更多
1.测试数据表

申报征收信息表SB_ZSXX

序号             税种              税额          入库日期

XH            ZSXM_DM         SE              RKRQ

1                01                   1000           2007-8-23

2                01                    500            2007-7-23

3                 01                   700            2006-8-23

ok..我们现在要统计本月入库税额,上期(上月)入库税额,去年同期(去年同月)入库税额

sql查询结果类似下面

ZSXM_DM           本期                 上期                   去年同期

01                        1000                 500                   700

二。查询sql

这里主要使用case when,来构造新列

统计3期税额
select       zsxm_dm,

case when rkrq      <to_date('2007-09-01','YYYY-MM-DD')      and rkrq >=to_date('2007-08-01','YYYY-MM-DD') then se end bq,---本期

case when rkrq      <to_date('2007-08-01','YYYY-MM-DD')      and rkrq >=to_date('2007-07-01','YYYY-MM-DD') then se end sq,---上期

case when rkrq      <to_date('2006-09-01','YYYY-MM-DD')      and rkrq >=to_date('2006-08-01','YYYY-MM-DD') then se end      qntq       --去年同期

from sb_zsxx

当然,我们还可以按税种(zsxm_dm)分组(group by)求和
select       zsxm_dm,

sum(case    when rkrq      <to_date('2007-09-01','YYYY-MM-DD')      and rkrq >=to_date('2007-08-01','YYYY-MM-DD') end)bq,---本期

sum(case when rkrq      <to_date('2007-08-01','YYYY-MM-DD')      and rkrq >=to_date('2007-07-01','YYYY-MM-DD') end) sq,---上期

sum(case when rkrq      <to_date('2006-09-01','YYYY-MM-DD')      and rkrq >=to_date('2006-08-01','YYYY-MM-DD') end) qntq---去年同期

from sb_zsxx

group by      zsxm_dm

大家可以看到,case when的功能是很强大的,灵活的运用他,可以使我们的统计查询简化很多。

如后笔误。请谅解。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics