Witam, przepraszam że taki dziwny tytuł bo sam nie wiem jak to nazwać i nie mogę też znaleźć pomocy na stacku.
Załóżmy że mamy zamówienia w bazie i statusy do zamówień i teraz chcę pobrać zamówienie które mają status AAA oraz BBB ale nie mają w historii statusu XXX.
Przykład:
SELECT * FROM zamowienia z JOIN statusy_historia s ON s.id_zamowienia = z.id_zamowienia AND s.nazwa = "AAA" OR s.nazwa = "BBB" # Ale nie chce zamówień ze statusem XXX
SELECT z.id_zamowienia FROM zamowienia z JOIN statusy_historia s ON s.id_zamowienia=z.id_zamowienia AND s.nazwa IN ('AAA', 'BBB', 'XXX') GROUP BY 1 HAVING count(DISTINCT s.nazwa)>Count(DISTINCT CASE WHEN s.nazwa='xxx' THEN s.nazwa END)
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)