今天朋友问我了一个统计报表的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. Oracle导入导出命令

    //导出 exp techrpt_data/techrpt_data@orcl file=d:\_临时文件\techrpt_data.dmp owner=techrpt_data //导入 imp t ...

  2. makefile变量赋值

    在定义变量的值时,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来在用变量定义变量的值. 先看第一种方式,也就是简单的使用“=”号,在“=”左侧是变量,右侧是变量的值,右侧变量的值 ...

  3. C#异步调用的方法

    最经公司工作需要调用一个外部的webservice,同时要将传出的数据进行保存,以自己以前的习惯,就打算逐步操作,失败啊,完全没考虑过用户体验效果,在同事指点下,意识到使用异步调用的好处,随便将自己找 ...

  4. 基于Typecho CMS框架开发大中型应用

    基于Typecho CMS框架开发大中型应用 大中型应用暂且定义为:大于等于3个数据表的应用!汗吧! Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Wid ...

  5. 高频sql语句汇总。不断更新。。

    操作 语句 创建数据库 CREATE DATABASE dbname/* DEFAULT CHARSET utf8 COLLATE utf8_general_ci;*/ 删除数据库 DROP DATA ...

  6. 配置云服务器 FTP 服务

    自己配置的环境: OS: 阿里云 CentOS 6.5 >>Begin: 1. 登录到阿里云服务器(如何登录阿里云服务器), 在root权限下, 通过如下命令安装 vsftp [root@ ...

  7. spring mvc WebArgumentResolver不生效

    WebArgumentResolver: SPI for resolving custom arguments for a specific handler method parameter. Typ ...

  8. css知多少(10)——display

    1. 引言 网页的所有元素,除了“块”就是“流”,而且“流”都是包含在“块”里面的(最外层的body就是一个“块”).在本系列一开始讲<浏览器默认样式>的时候,大家也都看到了浏览器默认样式 ...

  9. 手机端Swiper 触屏滑动

    在线实例 默认 响应式 垂直 空间间隔 滚动 自动滚动 中心化 中心化自动 免费模式 多个滚动 水平滚动 grab-cursor 使用方法 <div class="swiper-con ...

  10. Ajax+PHP+MySQL 登陆示例

    PHP是一门很好的语言,可以很方便的开发web应用程序,下面介绍一下PHP如何通过AJAX方式实现登录功能: 1 login.php 登录界面中,javascript脚本用ajax方式异步请求dolo ...