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

दो पंक्तियों का योग करें और दिनांक / कुल के अनुसार क्रम दें

इसके लिए हमें चयन पर डेटा को फ़िल्टर करने की आवश्यकता है न कि जॉइन पर।

यह शर्त हटाएं:

AND (month(d.date), year(d.date)) = (month(CURDATE()), year(CURDATE()))

और इसे चयन में जोड़ें:

SUM (CASE WHEN (month(d.date), year(d.date)) = (month(CURDATE()), year(CURDATE())) THEN 1 ELSE 0 END) as monthly

संपादित करें:

पूरी क्वेरी:

SELECT users.id, users.username, 
  COALESCE(sum(CASE WHEN (month(donations.date), year(donations.date)) = (month(CURDATE()), year(CURDATE())) THEN donations.amount ELSE 0 END), 0) monthly_sum, 
  COALESCE(sum(CASE WHEN (month(donations.date), year(donations.date)) = (month(CURDATE()), year(CURDATE())) THEN 1 ELSE 0 END), 0) monthly_amount, 

  COALESCE(sum(donations.amount), 0) total_sum, 
  count(*) total_amount

from users
left join donations
  on donations.uid = users.id
group by users.id, users.username

http://sqlfiddle.com/#!2/20a974/20/0



  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 का उपयोग करके एक यादृच्छिक और अद्वितीय 8 वर्ण स्ट्रिंग उत्पन्न करना

  2. प्राथमिक कुंजी के रूप में गाइड?

  3. MySQL में .frm और .opt फ़ाइलें आयात करें

  4. कौन सा तेज़ है:कई पंक्तियाँ या कई स्तंभ?

  5. पायथन/MySQL क्वेरी त्रुटि:`अज्ञात कॉलम`