Proponuję następujące zapytanie:
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)
Ostatni warunek, który dodałem do zapytania, umożliwia zwrócenie stylu tylko wtedy, gdy liczba rozmiarów dla tego produktu (total_records
) jest równa liczbie dostępnych rozmiarów tego produktu (SUM(qty>0)
).qty>0
zwróci 0 (gdy produkt nie jest dostępny w danym rozmiarze lub 1 (gdy jest dostępny). Więc SUM(qty>0)
zwróci liczbę całkowitą od 0 do całkowitej liczby rozmiarów.