mysql查询 根据月份查询每天的数据 没有数据显示0

 

mysql 查询 年月 每天的数据 没有数据的为0

 

表名 ceshi

 

查询2017年11月份每天的shuliang的和

 

SELECT
	DATE_FORMAT( lefttable.date, '%Y-%m' ) AS yearMonth,
	lefttable.date,
	IFNULL( righttable.m, '0' ) sumpdc 
FROM
	(
	SELECT
		ADDDATE( y.FIRST, x.d - 1 ) AS date 
	FROM
		(
		SELECT
			01 AS d UNION ALL
		SELECT
			02 UNION ALL
		SELECT
			03 UNION ALL
		SELECT
			04 UNION ALL
		SELECT
			05 UNION ALL
		SELECT
			06 UNION ALL
		SELECT
			07 UNION ALL
		SELECT
			08 UNION ALL
		SELECT
			09 UNION ALL
		SELECT
			10 UNION ALL
		SELECT
			11 UNION ALL
		SELECT
			12 UNION ALL
		SELECT
			13 UNION ALL
		SELECT
			14 UNION ALL
		SELECT
			15 UNION ALL
		SELECT
			16 UNION ALL
		SELECT
			17 UNION ALL
		SELECT
			18 UNION ALL
		SELECT
			19 UNION ALL
		SELECT
			20 UNION ALL
		SELECT
			21 UNION ALL
		SELECT
			22 UNION ALL
		SELECT
			23 UNION ALL
		SELECT
			24 UNION ALL
		SELECT
			25 UNION ALL
		SELECT
			26 UNION ALL
		SELECT
			27 UNION ALL
		SELECT
			28 UNION ALL
		SELECT
			29 UNION ALL
		SELECT
			30 UNION ALL
		SELECT
			31 
		) x,
		(
		SELECT
			CONCAT( '2017-11', '-01' ) AS FIRST,
			DAY ( LAST_DAY( str_to_date( '2017-11', '%Y-%m' ) ) ) AS last 
		) y 
	WHERE
		x.d <= y.last 
		-- AND ADDDATE( y.FIRST, x.d - 1 ) <= CURDATE( ) 
	) AS lefttable
	LEFT JOIN (
	SELECT
		sum( af2.shuliang ) AS m,
		DATE_FORMAT( af2.createTime, '%Y-%m-%d' ) AS gptime 
	FROM
		ceshi af2 
	WHERE
		DATE_FORMAT( af2.createTime, '%Y-%m' ) = '2017-11' 
	GROUP BY
	DATE_FORMAT( af2.createTime, '%Y-%m-%d' ) 
	) AS righttable ON DATE_FORMAT( lefttable.date, '%Y-%m-%d' ) = righttable.gptime

 

评论区有位大兄弟 说12月份的数据查询不出来 是因为 图中的sql 81行 

AND ADDDATE( y.FIRST, x.d - 1 ) <= CURDATE( ) 

判断的是 时间 <= 当前时间 (今天我编辑的是时间是2020年11月30日 所以 2020年12月份的数据是查询不出来的 但是2019年12月份是没问题的 如果想要查询2020年12月的数据 那就把这行注释掉就可以了 上图中的sql 我已经注释掉了 )

好多都说这个sql 查询有问题 查不出来的 我是真的没办法了 表 和sql语句 我都原封不动的放进来了

如果还是不行 自己亲自建立个表 表名就叫 ceshi 里面的字段 就放id,name,createTime,shuliaing 这四个字段  啥都不要变 sql 也直接粘贴过去

如果还是不行 亲 建议换个头

如果还是不行 那咱在评论区五连鞭接 化 发吧

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值