Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पिछले 12 महीनों के लिए महीने के हिसाब से Mysql रिकॉर्ड का योग

आपको प्रत्येक माह के लिए एक पंक्ति वाली तालिका के साथ बाहरी जुड़ाव करने की आवश्यकता है। मान लें कि आपके पास ऐसी कोई तालिका नहीं है, तो आप इसे हार्ड-कोडेड 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 में Generate_series () समकक्ष का उपयोग करके आइटम कैसे गिनें?

  2. MySQL डेटाबेस के लिए PHP खोज स्क्रिप्ट, केवल 3 अक्षर काम कर रहे हैं

  3. केकपीएचपी क्वेरी तैयारी में शामिल होने के बयान और सबक्वेरी के साथ

  4. चयन करना चाहिए ... अद्यतन के लिए हमेशा ORDER BY होता है?

  5. पीडीओ बाइंड पैराम्स इस पर निर्भर करता है कि वे क्वेरी में मौजूद हैं या नहीं