sql >> Database teknologi >  >> RDS >> Mysql

Hvordan vælger man kun grupperede poster, hvis hver post i en gruppe opfylder et bestemt kriterium i MySQL?

Jeg foreslår følgende forespørgsel:

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)

Den sidste betingelse, jeg tilføjede til forespørgslen, gør det kun muligt at returnere en stil, hvis antallet af størrelser for dette produkt (total_records ) er lig med antallet af tilgængelige størrelser for dette produkt (SUM(qty>0) ).
qty>0 vil enten returnere 0 (når produktet ikke er tilgængeligt i den givne størrelse, eller 1 (når det er tilgængeligt). Så SUM(qty>0) returnerer et helt tal mellem 0 og det samlede antal størrelser.



  1. Kombiner flere underordnede rækker til én række MYSQL

  2. LazyInitializationException forsøger at få doven initialiseret instans

  3. PostgreSQL Connection Pooling:Del 1 – Fordele og ulemper

  4. Hvordan udfører man indsættelse og upload af flere billeder i PHP?