mysql 按自然年月日分组

报表按照自然年月日分组,但是没有数据的月份需要自动填充零。所以创建虚拟表年月日表

SELECT
	@s :=@s + 1 AS _index,
	DATE(
		DATE_SUB(CURRENT_DATE, INTERVAL @s DAY)
	) AS _date
FROM
	information_schema. TABLES,
	(SELECT @s := - 1) temp
WHERE
	@s < 365  #控制天数 查询近一年的数据
ORDER BY
	_date

然后在left join 其他业务表数据与 _date 进行条件语句,最后其他表数据进行null值操作
IFNULL(表.字段, 0) AS `业务字段`

原文地址:https://www.cnblogs.com/liclBlog/p/15349466.html