Từ nhận xét của bạn .
Bạn có thể sử dụng CASE
câu lệnh trong WHERE
như thế này:
SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND ( STATUS = 'Sold'
OR STATUS = 'In Stock'
OR STATUS = 'Ref')
AND CASE STATUS
WHEN 'Sold'
THEN delivery_date >= '2012-08-01'
ELSE 1=1
END
Ở đây bạn cần sử dụng ELSE 1=1
. nếu không bạn sẽ không nhận được kết quả mong muốn. Để biết thêm giải thích, hãy xem SQLFiddle này