Предлагам следната заявка:
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)
Последното условие, което добавих към заявката, позволява да се върне стил само ако броят на размерите за този продукт (total_records
) е равен на броя на наличните размери за този продукт (SUM(qty>0)
).qty>0
ще върне или 0 (когато продуктът не е наличен в дадения размер, или 1 (когато е наличен). Така че SUM(qty>0)
ще върне цяло число между 0 и общия брой размери.