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 也直接粘贴过去
如果还是不行 亲 建议换个头
如果还是不行 那咱在评论区五连鞭接 化 发吧