Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hiển thị phần còn lại của hàng với null hoặc 0 tại chỗ cho các cột không tìm thấy

Nếu tôi hiểu đúng, bạn cần sử dụng OUTER JOIN để nhận kết quả cho những tháng còn thiếu, nhưng bạn cũng cần có CROSS JOIN để lấy tên Công ty một cách chính xác - nếu không, nó sẽ hiển thị dưới dạng 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. mysql.sock không được tạo OSX

  2. PHP / PDO / MySQL:chèn vào MEDIUMBLOB lưu trữ dữ liệu xấu

  3. Xác định xem chỉ mục bảng MySQL có tồn tại hay không trước khi tạo

  4. C # Try / Catch không bắt được ngoại lệ

  5. làm cách nào để xuất ra rowName dựa trên bảng liên kết?