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.)