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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!