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

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

   为了更形象的表现,首先兴建一个表。例如: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了。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值