今天朋友问我了一个统计报表的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. LeetCode - 50. Pow(x, n)

    50. Pow(x, n) Problem's Link ----------------------------------------------------------------------- ...

  2. .Net语言 APP开发平台——Smobiler学习日志:用Gridview控件设计较复杂的表单

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  3. 【Remoting】.Net remoting方法实现简单的在线升级(上篇:更新文件)

    一.前言:       最近做一个简单的在线升级Demo,使用了微软较早的.Net Remoting技术来练手. 简单的思路就是在服务器配置一个Remoting对象,然后在客户端来执行Remoting ...

  4. 【C#】第2章学习要点

    分类:C#.VS2015 创建日期:2016-06-15 教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.本章要点 C#数据类型分两大类:值类型.引用类型. 值类型 ...

  5. Tomcat8访问管理页面localhost出现:403 Access Denied

    问题: Access Denied You are not authorized to view this page. If you have already configured the Manag ...

  6. gcd和ex_gcd

    gcd就是欧几里得算法,可以快速的求出俩个数的最大公因数,进而也可以求其最大公倍数(俩数之积除以最大公因数),比较简单直接看代码就好了,一般用递归版,简短精简,敲得快,但如果数剧奇葩,怕溢出,那就用递 ...

  7. FreeBSD-安装与配置(10.3@VMware)

    (#今天尝试了一天,装上了FreeBSD:记录几个重要的地方 bsdinstall/bsdconfig 善用ports,本地源 善用handbook以及doc pkg install XXX,装上Xo ...

  8. Guava学习笔记:Preconditions优雅的检验参数

    在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去.对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处 ...

  9. windows server 2003安装sp4时的问题

    "以前进行的程序安装创建了挂起的文件操作.运行程序之前,必须重新起动计算机."的解决办法 在安装SQL 2000数据库和SQLSP4补丁时,经常会提示“以前进行的程序安装创建了挂起 ...

  10. PHP极客水平测试——给创业公司用的远程面试题

    出了份面试题<PHP极客水平测试>,创业公司可以用这个远程笔试啦,先答题,看答案合适了再邀请面试.希望对创业公司有所帮助,欢迎围观提建议哦^_^ 题目会持续更新. 答题地址:http:// ...