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

本文介绍如何使用SQL的CASE WHEN语句构造新列,以统计不同时间周期内的入库税额,包括本期、上期及去年同期的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的功能是很强大的,灵活的运用他,可以使我们的统计查询简化很多。

如后笔误。请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值