今天朋友问我了一个统计报表的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问题的更多相关文章

  1. sql月,年,统计报表sql报表

    select DevName as 设备名称, count(flux) as 流量数据个数, max(flux) as 流量最大值, min(flux) as 流量最小值, avg(flux) as ...

  2. 用SQL实现统计报表中的"小计"与"合计"的方法详解

    本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下   客户提出需求,针对某一列分组加上小计,合计汇总.网上找 ...

  3. 用SQL实现统计报表中的“小计”和“合计”

    问题: 开发一个关于各烟叶等级的二次验级的原发件数.原发重量及验收重量的统计报表.其中,原发件数.原发重量和验收重量等列要求计算出各等级组别的小计和所有记录的合计. 语句: SELECT DECODE ...

  4. ASP.NET MVC搭建项目后台UI框架—7、统计报表

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET M ...

  5. 数据库整合数据报表SQL实战

    协助同事整理sql统计报表. ---建立由avalue的视图,要过滤重复数据 CREATE VIEW vLectAnswerRecord as SELECT t2.OpenID,t2.Qguid,t1 ...

  6. statpot:使用mongo+bootstrap+highcharts做统计报表

    最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求就需要分析这些数据,然后做出个统计报表. 需求实现 最初的时候想着每天把这些接口访问 ...

  7. mysql统计类似SQL语句查询次数

    mysql统计类似SQL语句查询次数 vc-mysql-sniffer 工具抓取的sql分析. 1.先用shell脚本把所有enter符号替换为null,再根据语句前后的字符分隔语句 grep -Ev ...

  8. 考勤输入导入OA平台与考勤统计报表导出功能源代码

    注:以某某公司为例,每日签到时间为8点整   每日签退时间为17点30分 规则:公司签到签退时间在OA平台中可以视实际情况调整,当天有请假并通过工作流审批通过为有效,当天因公外出并通过工作流审批通过为 ...

  9. 用Synoptic Panel自定义基于图形的可视化控件--制作一张剧场售票统计报表

    数据可视化的一大特点就是能给报表使用者带来感官上的享受.不再是枯燥的数字,而变成一个一个亮丽的图形.之前业界大神公布过一个统计Car Accidents的报表,这个Power BI Report的特点 ...

随机推荐

  1. js实现数组的排序和分组

    问题: data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4] 怎么把值为1,2,3,4,5,8的数据分成 ...

  2. Think different

    Here's to the crazy ones.The misfits.The rebels.The troublemakers.The round pegs in the square holes ...

  3. HtmlAgilityPack搭配 ScrapySharp或HtmlAgilityPack.CssSelectors

    Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂的类库,但它的功能确不弱,为解析DOM已经提供了足够强大的功能支持,可以跟jQuery操作DOM媲 美:)Html A ...

  4. 【工具】清理Windows Installer冗余文件(支持64位NT6.x系统)

    样子: 支持系统: Windows NT 5.x/6.x 32及64位所有系统.需.net framework 2.0运行环境 功能: 清理上述系统中冗余的Windows Installer补丁文件. ...

  5. Oracle Error - "OCIEnvCreate failed with return code -1 but error message text was not available".

    ISSUE: When trying to connect to an Oracle database you receive the following error: "OCIEnvCre ...

  6. 15天玩转redis —— 第一篇 开始入手

    双十一终于还是过去了,我负责的mongodb由于做了副本集,最终还是挺过去了,同事负责的redis,还是遗憾的在早上8点左右宕机了,然后大家就是马不停 蹄的赶往公司解决问题,因为我对redis也不是很 ...

  7. Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...

  8. Debian7安装GCC4.8

    参考一  参考二   参考三   参考四 Ubuntu13.04下编译GCC-4.8.2源码并安装成功 CentOS 6编译安装GCC4.8      CentOS 6.4系统编译安装gcc-4.8. ...

  9. MySQL知识总结

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  10. 专业PHP 7 IDE - Eclipse PDT 4.0 终于出世

    2016年6月22日,第一款开源免费的完整支持PHP 7版本的IDE - PDT 4终于发布.原本我是期望Netbeans 8.2的,但PDT 4.0 发布,就等不及了. PDT团队很高兴的宣布PDT ...