`

sql 实现按月份,季度统计报表

阅读更多
呵呵,我们在处理设计到日期统计时候经常会按照年度,季度,月份统计进行同期比或者环比
先看看表结构

/****** 对象:  Table [dbo].[t_case_statistics]  作者:JC_Dreaming  脚本日期: 08/30/2010 11:53:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[t_case_statistics](
	[caseid] [bigint] IDENTITY(1,1) NOT NULL,
	[caseapplicant] [varchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL,
	[casestartdate] [datetime] NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF


其中caseid 主键自增长,caseapplicant为申报人,casestartdate起始时间。
就按照起始时间进行统计。
插入几条测试语句


insert into t_case_statistics (caseapplicant,casestartdate) 
 values ('权限以上企业投资备案项目上报',convert(DATETIME,'2009-08-28 13:14:56',111));
insert into t_case_statistics (caseapplicant,casestartdate) 
 values ('一、二类机动车维修经',convert(DATETIME,'2009-08-28 14:11:09',111));
insert into t_case_statistics (caseapplicant,casestartdate) 
 values ('盟工商非公司企业',convert(DATETIME,'2009-08-28 14:16:10',111));
insert into t_case_statistics (caseapplicant,casestartdate) 
 values ('利用外国政府贷款',convert(DATETIME,'2010-08-27 15:13:12',111));
......


呵呵,我们看看数据库组织语句

select years as '年份',
case when months=1 then counts else 0 end '1月份',
case when months=2 then counts else 0 end '2月份',
case when months=3 then counts else 0 end '3月份',

case when quarters=1 then counts else  0 end '一季度',
case when months=4 then counts else 0 end '4月份',
case when months=5 then counts else 0 end '5月份',
case when months=6 then counts else 0 end '6月份',
case when quarters=2 then counts else  0 end '二季度',
case when months=7 then counts else 0 end '7月份',
case when months=8 then counts else 0 end '8月份',
case when months=9 then counts else 0 end '9月份',
case when quarters=3 then counts else  0 end '三季度',
case when months=10 then counts else 0 end '10月份',
case when months=11 then counts else 0 end '11月份',
case when months=12 then counts else 0 end '12月份',
case when quarters=4 then counts else  0 end '四季度'
from(
select datepart(yy,caseStartDate) as years,datepart(q,caseStartDate) as quarters, datepart(mm,caseStartDate) months,count(1)as counts 
from ximeng_web.dbo.t_case_statistics group by year(caseStartDate),datepart(q,caseStartDate),month(caseStartDate) 
)as test


其中month(caseStartDate) 等效于datepart(mm,caseStartDate)
year(caseStartDate)等效于 datepart(yy,caseStartDate)
可惜sql只提供了这两个统计函数,需要按照其它日期统计就不如datepart()灵活方便自如
统计效果:
分享到:
评论

相关推荐

    sql中的按日期统计问题

    在SQL(结构化查询语言)中,处理按日期统计的问题是一项常见的任务,特别是在数据分析、报表生成和业务智能领域。这类问题通常涉及到从数据库中提取特定日期范围内的数据,或者计算不同日期区间的数据量。以下是对...

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

    在SQL Server中,进行分组统计查询是数据分析和报表生成中的常见操作。本文将详细讲解如何根据日期的月和小时部分进行分组统计,以满足特定的查询需求。 首先,我们创建一个名为`Counter`的表格,用于存储访问记录...

    非常完美Java实现年、月、日、周访问量统计

    8. **数据聚合**:对于更复杂的需求,比如按小时或按用户分组统计,可能需要使用数据聚合框架,如Apache Commons Math的统计模块,或者更强大的Apache Spark或Hadoop。 9. **异常处理**:在处理文件或数据库操作时...

    SQL Server-DatePart函数

    在实际应用中,`DATEPART`函数经常用于报表生成,比如按季度、按周或者按特定日期范围进行统计分析。同时,在业务规则中,例如计算员工的工龄或者判断是否周末或节假日,`DATEPART`也起到了关键作用。 总之,理解并...

    SQL按照日、周、月、年统计数据的方法分享

    这样,你可以根据传入的参数生成对应的统计SQL,实现更灵活的数据分析功能。 总结来说,SQL提供了丰富的函数和语法来处理日期和时间,以便于我们对数据进行不同粒度的统计分析。理解并熟练运用这些函数,对于数据...

    SQL 函数集.rar

    例如,将产品销售数据按年份和季度分别显示为不同的列。 2. **小计(Subtotals)**: 在处理大量数据时,往往需要对特定组进行求和、平均等计算。SQL Server提供GROUP BY语句结合聚合函数(如SUM, AVG, COUNT, MAX...

    周、月、季、年统计SQL

    在Oracle数据库中进行时间相关的统计是非常常见的需求,尤其是在报表生成、数据分析等领域。本文将详细介绍如何利用Oracle SQL来获取当前周、月、季、年的起始日期与结束日期,并进一步讨论如何基于这些日期进行数据...

    oracle实现按天,周,月,季度,年查询排序方法

    本文将详细介绍如何利用SQL语句实现按天、周、月、季度和年进行查询和排序的功能。 首先,我们来看按天查询。在Oracle中,我们可以使用`to_char()`函数结合日期时间格式模型`'YYYY-MM-DD'`来提取日期,并以此进行...

    如何在水晶报表中分组汇总记录源程序实例,C#.net源代码编写,

    可以设置多个级别的分组,例如按照年、季度、月份进行层次化分组。在每个组上,右键单击并选择“组选项”来设置分组依据,如排序方式和细节显示。 接着,添加汇总字段。在“字段浏览器”中找到需要汇总的字段,将其...

    Oracle日期时间用法.docx

    Oracle数据库在处理日期和时间方面提供了丰富...通过组合使用这些函数,我们可以轻松地完成按年、季度、月、周等时间单位的数据统计任务。在实际工作中,这些技巧对于数据库管理员、开发人员和分析师来说是必不可少的。

    mysql日期函数总结

    - 在查询或统计报表中按星期几进行分类。 #### WEEKDAY(date) - **功能**:与`DAYOFWEEK`类似,但是返回值范围为0到6,其中0表示星期一。 - **示例**: ```sql SELECT WEEKDAY('1997-10-04 22:23:00'); ``` ...

    公务员统计系统安装说明.pdf

    设定统计的时间范围,如年度、季度或月份,以便正确统计不同时间段的数据。 2.1.4 设置报表封面 报表封面通常包含单位名称、报告期等基本信息,需要预先设定,以保持统一格式。 2.2 校核汇总 数据填报后,系统会...

    DB2常用函数(初学者必备)

    时间日期函数在数据分析和报表生成中非常重要。DB2提供了一系列函数来操作日期和时间: - **Year**: 提取日期中的年份。 - **Quarter**: 返回日期所属的季度。 - **Month**: 返回日期中的月份。 - **Week**: 返回...

    ASP.NET服装连锁店管理系统的设计与开发(源代码+论文).zip

    销售统计功能可以帮助分析销售趋势,比如按季度、月份或者特定促销活动查看销售额。报表模块可以自动生成图表,便于管理层决策。此外,系统可能还包括退货、换货处理,以及与供应商的对账功能。 至于Android标签,...

    帆软FCRP-D数据库练习题2

    在这个问题中,需要使用SELECT语句来查询按季度统计销售量。可以使用FROM子句来指定要查询的表名,并使用GROUP BY子句来分组统计。可以使用SUM函数来计算销售量的总和。 17. 查出订单总额超出 5000 的所有订单,...

    ufo报表-附录-使用手册 [用友软件]

    - 日期函数(DAY)、月份函数(MONTH)、季度函数(SEASON)、年函数(YEAR),提供日期的全面解析。 ##### 5. 表操作辅助函数 这类函数用于报表内部的操作,如: - 页面号函数(MRECNO)、页面数函数(MNUMBER)...

    MySQL时间日期格式化

    - **应用场景**:常用于财务报表按季度统计。 ##### 10. **WEEK** - **语法**:`WEEK(date, first_day_of_week)` - **用途**:返回指定日期所在的周数,可以指定一周的起始日。 - **示例**: ```sql SELECT WEEK...

    工资管理系统delphi的

    4. 报表生成:生成月度、季度或年度的工资报表,可导出为Excel或其他格式。 5. 权限管理:设定不同用户角色的权限,如普通员工只能查看自己的工资,而管理员则可以查看所有员工的工资信息。 在实现这些功能时,...

    数据库时间转换函数

    在数据库管理中,时间转换函数是非常重要的一部分,它们允许我们对日期和时间进行各种操作,以便获取所需的信息或进行复杂的查询。以下是一些常见的数据库时间...这些功能在报表、统计分析以及业务逻辑中都有广泛应用。

Global site tag (gtag.js) - Google Analytics