2 wangvsin wangvsin 于 2016.03.16 14:19 提问

SQL按月统计没有数据的月份如何显示 10C
sql

图片说明
这是表。
SELECT MONTH(CREATE_TIME) AS m,COUNT(*),REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016 AND REMARK = 2 OR REMARK
GROUP BY MONTH(CREATE_TIME)
这是SQL
图片说明
这是结果。我想要没有数据的月份显示为0
例如上面的结果8,9,12月没有数据。就显示为8 0,9 0, 12 0

3个回答

qq_27556567
qq_27556567   2016.03.16 14:49

如果我是你用数据库解决不了 我会用后台代码来把它解决

li953348869
li953348869   2016.03.16 15:15

SELECT K1.m,COUNT(*) ,K2.REMARK from

(SELECT MONTH(CREATE_TIME) AS m, REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016
GROUP BY REMARK) K1
LEFT JOIN
(SELECT MONTH(CREATE_TIME) AS m,COUNT(*),REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016 AND REMARK = 2
GROUP BY MONTH(CREATE_TIME)) K2
ON K1.REMARK=A2.REMARK
WHERE 1=1
GROUP BY K1.m

这个试试,我没数据表,纯属按思路写的.错了勿怪

zhangjs712
zhangjs712   2016.03.17 10:27

代码解决比SQL解决更好,按月统计的数据本身数量就少,查询出来代码校验一下把缺少的加上多少,通过SQL解决还占用数据库的资源。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mysql 按月统计数据 没有数据按0补全
也借鉴了网上的做法,但不全相同,这里补全。 CREATE TABLE num (i int);-- 创建一个表用来储存0-9的数字 INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间 CREATE TABLE `calendar ` (  
SQL统计1-12月的数据,没有数据的月份显示为0
SQL统计1-12月的数据,没有数据的月份显示为0
MySQL中如何按月统计数据
表finance有俩个字段如下 date date money double(15,2) 下面需要对表 finance的2010年财务数据,按月进行统计 Sql代码 select DATE_FORMAT(date,'%Y-%m') as month,sum(money) as money from finance where DATE_FORMAT(date,'%Y')=20
SQL Server中的按月进行统计的方法
<br />   最近做一个项目的时候,需要用到按月统计数据,然后以图表的形式表现出来。得到的结果的表中总共有两个字段,一个是月份,一个是统计的数据字段。对于首次做这方面的我来说,在网上找了半天,着实把握男了半天。下面就我搜到的和学到的与大家分享。<br />   为了更形象的表现,首先兴建一个表。例如:creat table t1(dt datetime not null,count int,ID int identity(1,1) not null)。这里主要是兴建一个表包含3个字段,一个是时间一个是次
SQL 按月统计(两种方式)
) select Convert ( VARCHAR(7),ComeDate,120) as Date ,Count(In_code) as 单数,Sum(SumTrueNum) as 件数  from T_In_Top  where  ComeDate between '2013-01-01' and '2014-08-04' and In_top_State='已完成' and Case
【统计】Oracle按月统计(详细)
--创建表 Test CTEATE TABLE TEST( ID  NUMBER NOT NULL, MODIFIEDTIME  DATE NOT NULL ) --按月统计 SELECT TO_CHAR(T.MODIFIEDTIME,'YYYY-MM') TIME,COUNT(*) COUNT FROM TEST T --这里可加查询条件 WHERE TO_CHA
SQL按月汇总
方式一:select  convert(char(7),createtime,20) as time,sum(clickhits) as hits from TEST0123 group by convert(char(7),createtime,20) 方式二:把任意时间段的数据按年、月、日、小时、分种任意格式来汇总,搞了半天终于写出来了,奉献给新手们看看还行吗
Oracle查询数据,按月统计,生成默认数据和月份【今年和去年的月份】
select to_char(add_months(start_date, (level - 1)), 'yyyymm') stat_date, 0 as kw_num from (select add_months(trunc(sysdate, 'y'), -12) as start_date, add_months(trunc(sysdate, ...
mysql按月分组查询 若某月份记录为空则记为0
SELECT * from( SELECT DATE_FORMAT(CREATE_TIME,'%Y%m') mon,cost yData FROM hd_disp_prescribe_master WHERE CREATE_TIME >= '2017-01-01 00:00:00' AND CREATE_TIME AND PATIENT_ID ='3004075874' gr
SQL 时间截按月分组查询
选将时间截转换成日期格式,再执行分组查询 按月分组,查高询每月的记录总数,Yii用法 $art_summary = Yii::app()->db->createCommand() ->select('DATE_FORMAT(FROM_UNIXTIME(inputtime),"%Y-%m") as month, COUNT(art_id) as num') ->from('dr_