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

原创 2007年10月12日 17:18:00

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

如后笔误。请谅解。

 

SQL语句实现上期比统计实例

使用润乾的客户可以通过位移坐标实现,上期比、同期比等数据的计算,但当其授权文件中没有位移坐标的功能点的时候,实现起来就比较困难了,通常建议客户在SQL中计算得出。 下面就是通过SQL语句计算出上期比的...
  • RQlyc
  • RQlyc
  • 2016年11月23日 17:40
  • 261

sqlserver 查询当日、当月数据

--查询当天:    select * from info where DateDiff(dd,datetime,getdate())=0       --查询24小时内的:    s...
  • hutao1101175783
  • hutao1101175783
  • 2017年06月23日 10:05
  • 268

SQL实现分组统计查询(按月、小时分组)

转自http://www.cnblogs.com/oec2003/archive/2009/06/04/1496541.html   首先创建数据表 Create table Counter...
  • peng_bin1989
  • peng_bin1989
  • 2013年07月15日 13:49
  • 10275

【SQL】分组数据,过滤分组-group by , having

创建分组 - GROUP BY
  • robinjwong
  • robinjwong
  • 2014年05月01日 23:13
  • 15259

SQL Server汇总数据之聚合函数与分组

主要用于对数据集的的数据进行汇总统计等操作,基本是聚合函数。 聚合的基本理念:不是返回所有指定的行,而是返回一行计算得到的值(前面指定的行 的某些数据的汇总)。它们汇总了原始数据集。 1、计算总...
  • KH717586350
  • KH717586350
  • 2015年12月25日 23:31
  • 2746

SQL Server 统计信息理解(总结)

前言 Sqlserver 查询是基于开销查询的,在首次生成执行计划时,是基于多阶段的分析优化才确定出较好的执行计划。而这些开销的基数估计,是根据统计信息来确定的。统计信息其实就是对表的各个字段的总体数...
  • kk185800961
  • kk185800961
  • 2015年01月17日 17:21
  • 5386

SQL查询重复记录 sql 查重

假设现有一张人员表(表名:Person),若想将姓名、身份证号、住址这三个字段完全相同的记录查找出来,使用 1: SELECT p1.* 2: FROM persons ...
  • henryzhang2009
  • henryzhang2009
  • 2014年12月11日 12:33
  • 20093

[数据库资料] SQLServer查询最近一天,三天,一周,一月,一季度方法

一天 select * from T_news where datediff(day,addtime,getdate())=0 三天 select * from T_news where dat...
  • liuqiaoying_lqy
  • liuqiaoying_lqy
  • 2013年03月29日 08:17
  • 5667

SQL对数据进行统计、常用集合函数

学生表:       1、统计记录个数 1)  count(【all】*)【as  列别名】   返回表中的记录数 执行:SELECT COUNT (* )    FROM 学生表 结果为:  ...
  • softcg
  • softcg
  • 2016年12月09日 12:47
  • 3658

SQL 查询重复数据并显示重复次数

查询有重复数据的记录 select * from F group by a,b,c,d having count(*)>1 删除重复一模一样的记录,只保留一条记录 select distinct ...
  • delphi308
  • delphi308
  • 2014年03月27日 22:25
  • 49163
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql统计 本期 ,上期 ,去年同期 数据
举报原因:
原因补充:

(最多只允许输入30个字)