Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wybrać zgrupowane rekordy tylko wtedy, gdy każdy rekord w grupie spełnia określone kryteria w MySQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę uzyskać autoinkrementowany identyfikator, gdy wstawiam rekord do tabeli za pomocą jdbctemplate?

  2. Zwróć domyślny wynik dla wartości IN niezależnie od

  3. jak wybrać losowe unikalne rekordy przy każdym wykonaniu zapytania SQL

  4. 5 sposobów na sprawdzenie, czy tabela istnieje w MySQL

  5. MySQL group_concat z zaznaczeniem wewnątrz wybierz