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

MySQL समूह का उपयोग करके उस दिन कोई रिकॉर्ड नहीं होने पर खाली मान कैसे भरें

वर्चुअल टेबल बनाने के लिए आप एक ट्रिक का उपयोग कर सकते हैं, जिसमें आपकी जरूरत की सभी तारीखें किसी अन्य टेबल के साथ हों (aux बदलें) आपके डीबी में किसी भी तालिका के साथ कम से कम 31 रिकॉर्ड किए गए):

SELECT CONVERT(@d := DATE_ADD(@d, INTERVAL 1 DAY), DATE) AS `d`
FROM
    `aux`,
    (SELECT @d := DATE_SUB(CONVERT(DATE_FORMAT(NOW(), '%Y-%m-01'), DATETIME), INTERVAL 1 DAY)) `x`
WHERE
    @d < DATE_SUB(NOW(), INTERVAL 1 DAY)
LIMIT
    31

और फिर उस पर अपनी तालिका में शामिल हों:

SELECT
    `aux`.`d` as `Date`,
    SUM(IFNULL(`Clicks`, 0))AS `Clicks`,
    DAY(LAST_DAY(NOW())) AS `Monthdays`
FROM (
    SELECT CONVERT(@d := DATE_ADD(@d, INTERVAL 1 DAY), DATE) AS `d`
    FROM
        `aux`,
        (SELECT @d := DATE_SUB(CONVERT(DATE_FORMAT(NOW(), '%Y-%m-01'), DATETIME), INTERVAL 1 DAY)) `x`
    WHERE
        @d < DATE_SUB(NOW(), INTERVAL 1 DAY)
    LIMIT
        31
) aux
LEFT JOIN
    myTbl
    ON `Date` = `aux`.`d`
GROUP BY `aux`.`d`



  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:LIKE ऑपरेटर में एस्केपिंग काम क्यों नहीं कर रहा है?

  2. एक अंतर्निहित सरणी को एक MySQL तैयार कथन में बाध्य करने में समस्या

  3. mySQL में IP कैसे स्टोर करें?

  4. MySQL 1062 - कुंजी 'प्राथमिक' के लिए डुप्लिकेट प्रविष्टि '0'

  5. MySQL डेटाबेस में क्रेडिट कार्ड की जानकारी सहेजा जा रहा है?