sql求 当前系统时间一个月前每天的预警台数

1.需求:当前系统时间一个月前每天的预警台数


2.现在我写的SQL只会显示出有数据的日期的总条数,求大佬们加个条件

没有条数的日期也显示出来 条数显示为0


SELECT

aed_warn.lasttime,

count( aed_warn.id ) AS number

FROM

aed_warn

LEFT JOIN aed_device ON aed_warn.deviceid = aed_device.id

WHERE

aed_device.setupcity = "深圳市"

AND aed_warn.lasttime BETWEEN ( SELECT DATE_ADD( now( ), INTERVAL - 1 MONTH ) )

AND now( )

GROUP BY

lasttime;

图片说明

回答

你的意思是不是表中没有日期要构造一个虚拟的日期出来

SELECT d.`date`

FROM

(

SELECT DATE_FORMAT(DATE_ADD( NOW(), INTERVAL -t.help_topic_id DAY ),'%Y-%m-%d') AS 'date'

FROM mysql.help_topic t

WHERE t.help_topic_id<=DATEDIFF(NOW(),DATE_ADD( NOW(), INTERVAL - 1 MONTH ))

) AS d

ORDER BY d.`date`

你可以用这个日期表left join你的业务表

参考:https://www.cnblogs.com/gered/p/11345713.html

以上是 sql求 当前系统时间一个月前每天的预警台数 的全部内容, 来源链接: utcz.com/a/40660.html

回到顶部