一个常用的报表统计SQL语句

 更新时间:2010年12月23日 10:57:26   作者:  
在平常的系统开发中,我们经常会遇到类似下图的报表统计功能需求。
一般都给定按日期区间统计某一值,每一个列就是统计时的分类。如下图:


下面给出上图的例子的sql语句写法:(注:此处是按“日期”字段统计)

复制代码 代码如下:

select 日期,自选字段1,自选字段2,sum(类型1) 类型1,sum(类型2) 类型2,sum(类型3) 类型3,sum(类型4) 类型4,sum(类型5) 类型5,sum(类型6) 类型6 from (
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,count(主键字段) 类型1,0 类型2,0 类型3,0 类型4,0 类型5,0 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2
union all
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,0 类型1,count(主键字段) 类型2,0 类型3,0 类型4,0 类型5,0 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2
union all
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,0 类型1,0 类型2,count(主键字段) 类型3,0 类型4,0 类型5,0 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2
union all
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,0 类型1,0 类型2,0 类型3,count(主键字段) 类型4,0 类型5,0 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2
union all
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,0 类型1,0 类型2,0 类型3,0 类型4,count(主键字段) 类型5,0 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2
union all
select to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd') 日期,自选字段1,自选字段2,0 类型1,0 类型2,0 类型3,0 类型4,0 类型5,count(主键字段) 类型6 from 表名
where 1=1
group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2 ) where 1=1 group by to_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2

这里的自选字段1,自选字段2可以自己随意增加,需要注意的是在group by 后面也要同时带上增加的自选字段。

相关文章

  • SQL Server解决游标性能问题的替代方案

    SQL Server解决游标性能问题的替代方案

    游标是一种能从包含多个元组的集合中每次读取一个元组的机制,游标总是和一段SELECT语句关联,SELECT语句查询出的结果集就作为集合,游标能每次从该集合中读取出一个元组进行不同操作,但在某些情况下,它们可能会导致性能问题,本介绍了SQL Server解决游标性能问题的替代方案
    2024-12-12
  • Centos 7.3下SQL Server安装配置方法图文教程

    Centos 7.3下SQL Server安装配置方法图文教程

    这篇文章主要为大家详细介绍了Centos 7.3下SQL Server安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 深入SQLServer中ISNULL与NULLIF的使用详解

    深入SQLServer中ISNULL与NULLIF的使用详解

    本篇文章是对SQLServer中ISNULL与NULLIF的使用进行了详细分析介绍,需要的朋友参考下
    2013-06-06
  • SQL Server导入、导出、备份数据方法

    SQL Server导入、导出、备份数据方法

    注意包括导出导入SQL Server里某个数据库,导出导入SQL Server里某个表
    2008-12-12
  • SQL Server中row_number分页查询的用法详解

    SQL Server中row_number分页查询的用法详解

    这篇文章主要介绍了SQL Server中row_number的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • sql 修改表的所有者

    sql 修改表的所有者

    有时候因为一些权限问题,需要修改表的所有者,下面的方法不错
    2009-03-03
  • SQL Server 2016里的sys.dm_exec_input_buffer的问题

    SQL Server 2016里的sys.dm_exec_input_buffer的问题

    这篇文章主要介绍了SQL Server 2016里的sys.dm_exec_input_buffer的相关资料,需要的朋友可以参考下
    2016-04-04
  • SQL Server 存储过程解析

    SQL Server 存储过程解析

    微软的SQL Server的存储过程机制能够通过对Transact-SQL语句进行组合而大大地简化了数据库开发过程。
    2009-03-03
  • SqlServer表死锁的解决方法分享

    SqlServer表死锁的解决方法分享

    前些天写一个存储过程,存储过程中使用了事务,后来我把一些代码注释掉来进行调试找错,突然发现一张表被锁住了,原来是创建事务的代码忘记注释掉。本文表锁住了的解决方法。
    2011-08-08
  • SQL 实用语句

    SQL 实用语句

    以下的sql语句都以上面表mytable为准
    2009-06-06

最新评论