您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySQL最近12个月中按月记录的总数

MySQL最近12个月中按月记录的总数

您需要使用一个表进行外部联接,该表每个月包含一行。假设您没有这样的表,则可以使用硬编码的UNION查询即时创建它:

SELECT * FROM
    (SELECT DATE_FORMAT(Now(), "%b") as Month
     UNION
     SELECT DATE_FORMAT(Now() - INTERVAL 1 MONTH), "%b")
     UNION
     SELECT DATE_FORMAT(Now() - INTERVAL 2 MONTH), "%b")
     UNION
     ...
     SELECT DATE_FORMAT(Now() - INTERVAL 11 MONTH), "%b")) AS Months
LEFT JOIN (SELECT DATE_FORMAT(drives.timestamp, "%b") AS Month,
                 drives.timestamp,
                 DATE_FORMAT(drives.timestamp, "%d-%m-%Y %H:%i:%s") AS Exact_date,
                 drives.departure,
                 drives.destination,
                 drives.route,
                 CONCAT(drivers.name, " ", drivers.surname) as driver,
                 drivers.id as driver_id
                 FROM drives, drivers WHERE drives.driver = drivers.id 
                 AND drives.timestamp > DATE_SUB(Now(), INTERVAL 12 MONTH)) data
ON Months.Month = data.Month
ORDER BY data.timestamp

任何没有记录的月份NULL在数据列中都会有一行。

MySQL 2022/1/1 18:37:59 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶