Witam,
Mam taką oto strukturę tabel:
W tabeli STATUSY_PRODUKTOW znajdują się 4 rekordy (Id - Nazwa):
1 - Nierozpoczęty
2 - Rozpoczęty
3 - Nieskończony
4 - Zakończony
Gdy chcę wyciągnąć produkty znajdujące się w zakładce tzw. Do opracowania Produkty Do opracowania to takie, których CHOCIAŻ JEDEN z etapów nie ma statusu 4 (Zakończony) to wyciągam je za pomocą takiego zapytania:
SELECT DISTINCT p.Id_produkty, p.Symbol FROM PRODUKTY as p
LEFT JOIN ETAPY_PRODUKTOW_NADANE as epn ON p.Id_produkty = epn.Id_produkty
LEFT JOIN STATUSY_ETAPOW_NADANE as sen ON epn.Id_etapy_produktow_nadane = sen.Id_etapy_produktow_nadane
WHERE sen.Id_statusy_produktow = 1 OR sen.Id_statusy_produktow = 2 OR sen.Id_statusy_produktow = 3;
A więc rozróżniam to na podstawie statusów z tabeli STATUSY_PRODUKTOW. Dodam, że jest w sumie 6 etapów i każdy ma właśnie swój status.
Problem pojawia się, gdy chcę wyciągnąć produkty tzw. Opracowane. Produkty Opracowane to takie, których WSZYSTKIE etapy mają status 4 (Zakończony). Nie potrafię skonstruować takiego zapytania, chociaż próbowałem coś takiego:
SELECT p.Id_produkty, p.Symbol FROM PRODUKTY as p
LEFT JOIN ETAPY_PRODUKTOW_NADANE as epn ON p.Id_produkty = epn.Id_produkty
LEFT JOIN STATUSY_ETAPOW_NADANE as sen ON epn.Id_etapy_produktow_nadane = sen.Id_etapy_produktow_nadane
HAVING COUNT(sen.Id_statusy_produktow = 4) = 1;
Byłbym bardzo wdzięczny za pomoc :)