Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

jumlahkan dua baris dan pesan berdasarkan tanggal / total

Untuk ini kita perlu memfilter data di pilih dan bukan di gabung.

Hapus kondisi ini:

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

dan tambahkan ini ke pilihan:

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

Sunting:

seluruh kueri:

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 SQL:item spesifik untuk menjadi yang pertama dan kemudian mengurutkan item lainnya

  2. Detail Profil Pengguna Session_start

  3. Membaca gumpalan dari MySQL dengan Java

  4. versi mysqldump Kesalahan saat mengekspor data dari MySQL

  5. Bagaimana saya menggunakan ON DUPLICATE KEY UPDATE dalam model CodeIgniter saya?