Sugiero la siguiente consulta:
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)
La última condición que agregué a la consulta permite devolver un estilo solo si la cantidad de tamaños para este producto (total_records
) es igual al número de tallas disponibles para este producto (SUM(qty>0)
).qty>0
devolverá 0 (cuando el producto no está disponible en el tamaño dado, o 1 (cuando está disponible). Entonces SUM(qty>0)
devolverá un número entero entre 0 y el número total de tamaños.