牛骨文教育服务平台(让学习变的简单)
博文笔记

SQL Server中的按月进行统计的方法

创建时间:2010-10-28 投稿人: 浏览次数:138

   最近做一个项目的时候,需要用到按月统计数据,然后以图表的形式表现出来。得到的结果的表中总共有两个字段,一个是月份,一个是统计的数据字段。对于首次做这方面的我来说,在网上找了半天,着实把握男了半天。下面就我搜到的和学到的与大家分享。

   为了更形象的表现,首先兴建一个表。例如:creat table t1(dt datetime not null,count int,ID int identity(1,1) not null)。这里主要是兴建一个表包含3个字段,一个是时间一个是次数,还有一个是ID号。

   首先说按月查询

   select convert(varchar(8),dt,120) as t_Month,sum(count) as Count

   from  t1

   group by convert(varchar(8),dt,120)

  这样一个式子就搞定,不过当你用了几次之后查询,就会发现当某个月没有数据的时候,是不会显示在结果中的。怎么办,这是可以用以下的式子解决这个问题。

   select mon as t_Month,sum(case when datepart(month,dt)=mon then count else 0 end) as Count

   from t1 t,

   (select 01 mon

   union all select 02

   union all select 03

   union all select 04

   union all select 05

   union all select 06

   union all select 07

   union all select  08

   union all select 09

   union all select 10

   union all select 11

   union all select 12) mm

   where Year(dt)="2010"

   group by mon

   这样就ok了。

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。