Tôi đề xuất truy vấn sau:
SELECT COUNT(a.id) AS total_records, a.disregard_inventory, a.qty
FROM artikelstammdaten a
...
GROUP BY a.style
HAVING (SUM(a.qty) != 0 OR (a.disregard_inventory = 1))
AND (SUM(qty>0) = total_records)
Điều kiện cuối cùng mà tôi đã thêm vào truy vấn chỉ cho phép trả về một kiểu nếu số lượng kích thước cho sản phẩm này (total_records
) bằng với số lượng kích thước có sẵn cho sản phẩm này (SUM(qty>0)
).
qty>0
sẽ trả về 0 (khi sản phẩm không có sẵn với kích thước đã cho hoặc 1 (khi sản phẩm có sẵn). Vì vậy, SUM(qty>0)
sẽ trả về một số nguyên từ 0 đến tổng số kích thước.