My Sql 统计12个月的数据,无数据填充0

语句:

select
a.date,ifnull(b.num,0) count
from
(
SELECT CONCAT('2020年','1月') AS date UNION
SELECT CONCAT('2020年','2月') AS date UNION
SELECT CONCAT('2020年','3月') AS date UNION
SELECT CONCAT('2020年','4月') AS date UNION
SELECT CONCAT('2020年','5月') AS date UNION
SELECT CONCAT('2020年','6月') AS date UNION
SELECT CONCAT('2020年','7月') AS date UNION
SELECT CONCAT('2020年','8月') AS date UNION
SELECT CONCAT('2020年','9月') AS date UNION
SELECT CONCAT('2020年','10月') AS date UNION
SELECT CONCAT('2020年','11月') AS date UNION
SELECT CONCAT('2020年','12月') AS date
)a

left join

(select count(*) num,DATE_FORMAT(HappenTime,'%Y年%c月') months from workorders) b

on a.date = b.months

注:上面的"2020年"可根据实际情况以参数的形式传入。

结果:

原文地址:https://www.cnblogs.com/sugarwxx/p/13553759.html