码迷,mamicode.com
首页 > 数据库 > 详细

一个统计报表sql问题

时间:2015-04-23 15:12:49      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

今天朋友问我了一个统计报表的sql问题。我弄了好久。终于算是写出来了。这里记录下。

问题:

 id--------------name--------------addtime
1                       a                      2014-01-01 02:30:21
1                       b                      2014-01-03 03:20:02
1                       c                      2014-01-03 06:10:30
1                       d                      2014-01-06 11:30:15
1                       e                      2014-01-06 11:10:18
1                       f                       2014-01-06 12:30:19
想要达到查询结果:
addtime---------------count
2014-01-01                  1
2014-01-02                  0
2014-01-03                  2
2014-01-04                  0
2014-01-05                  0
2014-01-06                  3
 
主要难点是:2014.1.2 这天没有数据,怎么按照这种日期排序呢?
最终的思路是:先生成日期的临时表,再根据日期的临时表进行排序。
我根据朋友的需求,创建的表:
技术分享
表数据:
技术分享
代码:
--删除临时表
DROP TABLE #tempDate
--创建临时表
CREATE TABLE #tempDate(CreateTime DATETIME)
--设置起始时间
DECLARE @startTime DATETIME
DECLARE @endTime DATETIME
SET @startTime=2015-3-10
SET @endTime=2015-4-28
--生成日期数据
WHILE @startTime<@endTime
BEGIN
    INSERT INTO #tempDate
            ( CreateTime )
    VALUES  ( CAST(DATEPART(yy,@startTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(mm,@startTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(dd,@startTime) AS NVARCHAR(13))  -- CreateTime - datetime
              )
    SET @startTime=DATEADD(dd,1,@startTime)
    CONTINUE
END

--查询统计结果
SELECT #tempDate.CreateTime,COUNT(b.CreateTime) SumCount  FROM #tempDate LEFT JOIN
TestTable1
b
ON (CAST(DATEPART(yy,#tempDate.CreateTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(mm,#tempDate.CreateTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(dd,#tempDate.CreateTime) AS NVARCHAR(13))) = (CAST(DATEPART(yy,b.CreateTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(mm,b.CreateTime) AS NVARCHAR(13))+-+
    CAST(DATEPART(dd,b.CreateTime) AS NVARCHAR(13)))

 

 

一个统计报表sql问题

标签:

原文地址:http://www.cnblogs.com/woaic/p/4450253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!