首页 SQLServer SQL存储过程查询一个月中每天的汇总记录

SQL存储过程查询一个月中每天的汇总记录

作者:胡同里的砖头 围观群众:1440 更新于:2013-12-19

首先写获得一个月总天数的方法:

create function [dbo].[DayofMon]
(
     @nowdate datetime
 )
 returns int
 as
 begin
  declare @num int
  set @num = (select day(dateadd(dd,-day(@nowdate),dateadd(mm,1,@nowdate))))
  return @num
 end
用select dbo.DayofMon('2011-02')获得总天数


下面介绍如何查询一个月中每天的汇总记录

create proc Article_GetSum
@date datetime--传递一个时间值
as
begin
declare @Sum int,@i int,@SQL varchar(max)--@Sum代表总天数,@i循环变量值,@SQL语句
Set @i=1--默认从1号开始查询
Set @Sum=dbo.DayofMon(@date)--获取X月的总天数,继承上面写的方法
Set @SQL='Select '
while @i<=@sum--循环
begin
Set @SQL=@SQL+'(Select count(*) From Article Where datediff(day,'''+ltrim(year(@date))+'-'+ltrim(month(@date))+'-'+ltrim(@i)+''',A_InTime)=0) AS '''+ltrim(month(@date))+'-'+ltrim(@i)+''','
Set @i=@i+1
end
Set @SQL=substring(@SQL,0,len(@SQL))--去掉最后的逗号
exec(@SQL)--执行SQL语句
end
go

执行结果如图:



  • 本文标题: SQL存储过程查询一个月中每天的汇总记录
  • 文章分类:【SQLServer】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8