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

Lấp các khoảng trống còn thiếu trong truy vấn phạm vi ngày bằng bảng lịch

Bạn cần một liên kết bên ngoài trên bảng lịch. Một cái gì đó giống như

SELECT c.cal_date, coalesce(t1.price, 0) as total
FROM calendar c
LEFT JOIN (SELECT b.purchase_date::date, sum(price) as price 
           FROM order_products a 
           INNER JOIN order_saved b 
                   ON a.order_id = b.id 
                   AND b.purchase_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
                   AND b.status > 2
                   AND a.usr_id = 'XXXX'
            GROUP BY b.purchase_date) t1 on t1.purchase_date = c.cal_date
WHERE cal_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
ORDER BY c.cal_date

Bạn sẽ nhận được câu trả lời tốt hơn nếu bạn đăng DDL (CREATE TABLE ) câu lệnh và INSERT tối thiểu các câu lệnh cung cấp cho chúng tôi đủ dữ liệu để thực sự kiểm tra các câu trả lời của chúng tôi. (Chỉnh sửa câu hỏi của bạn và dán các câu lệnh DDL và INSERT.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao nosql với cassandra thay vì mysql?

  2. lệnh mysqldump không hoạt động?

  3. Truy xuất id được chèn cuối cùng cho nhiều hàng

  4. Rails 4 MySQL bigInt các vấn đề và lỗi về khóa chính

  5. MySQL Fire Trigger cho cả Chèn và Cập nhật