Mysql
 sql >> база данни >  >> RDS >> Mysql

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 в колоните с данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. загуба на връзка с mysql при използване на mysqldump дори с параметър max_allowed_packet

  2. Как мога да отменя изявление на mysql, което току-що изпълних?

  3. Вътрешно присъединяване на много към много таблици с филтър в MySQL

  4. Върнете JSON от MySQL с име на колона

  5. Как мога да задам формат за автоматично увеличение на 0001 в MySQL?