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

महीने के आधार पर समूह कैसे करें और निश्चित महीने के लिए कोई मूल्य नहीं होने पर शून्य वापस करें?

सभी महीनों की एक तालिका बनाएं और फिर left join आपकी टेबल पर:

SELECT MONTHNAME(m.month) AS mName, 
    MONTH(m.month) AS mOrder, 
    ifnull(sum(amount),0) AS total_num 
from months m
left join income i
on m.month = i.date

GROUP BY mOrder 
ORDER BY mOrder DESC

अगर आप months बनाना नहीं चाहते हैं तालिका तो आप कर सकते हैं:

(select STR_TO_DATE('01/01/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/02/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/03/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/04/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/05/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/06/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/07/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/08/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/09/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/10/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/11/2016', '%d/%m/%Y') as month union 
 select STR_TO_DATE('01/12/2016', '%d/%m/%Y') as month)


  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:पिछले महीने और महीने पहले का चयन करें

  2. कैसे mysql में अंतराल के बिना सीरियल नंबर खोजने के लिए?

  3. PHP के साथ MySQL के लिए उपयोग करने के लिए सबसे अच्छा संयोजन क्या है?

  4. एकाधिक तालिकाओं से विवरण कैसे प्राप्त करें?

  5. Ldap प्रमाणीकरण और डेटाबेस अधिकारियों के लिए स्प्रिंग सुरक्षा स्विच