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 `业务字段`

posted @ 2021-07-09 09:49  缘来是妳啊  阅读(160)  评论(0编辑  收藏  举报