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

Tampilkan sisa baris dengan nol atau 0 di tempat untuk kolom yang tidak ditemukan

Jika saya mengerti dengan benar, Anda perlu menggunakan OUTER JOIN untuk mendapatkan hasil untuk bulan-bulan yang hilang, tetapi Anda juga memerlukan CROSS JOIN untuk mendapatkan nama Perusahaan dengan benar -- jika tidak, akan muncul sebagai NULL :

SELECT months.month,
     SUM(job_details.price_each*job_details.quantity) AS sum_monthly_price, 
     DATE_FORMAT(job.order_date, '%M') AS order_date, 
     customer.company_name 
FROM months CROSS JOIN customer 
    LEFT JOIN job on job.company_id = customer.company_id 
         AND months.month = month(job.order_date) 
    LEFT job_details on job.job_id = job_details.job_id 
WHERE months.month > month(date_sub(NOW(), INTERVAL 4 month)) 
    AND months.month <= month(NOW()) 
    AND customer.company_id = 6 
GROUP BY months.month 
ORDER BY months.month asc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Menambahkan hasil database ke array multidimensi

  2. Haruskah saya membuat bidang baru di tabel atau cukup pilih MAX dari tabel kedua

  3. Kotak kombo WPF mengisi data dari database mysql

  4. Bagaimana menangani dump SQL dengan Python

  5. mysql menghitung baris dengan loop