Jak to napisać:
Mam trzy tabele:
osoba:(id_osoby, imie, nazwisko)
pozycje_wyplat:(id_poz_wyplaty,data_od,data_do,brutto)
pozycje_zwrot:(id,id_poz_wyplaty,brutto)
Muszę wyszukać osoby, które mają wypłaty za jakiś okes np: 01.01.2013 do 31.03.2013 (widoczne jako trzy rekordy w tabeli pozycje_wypłat) i nie posiadają natomiast zwrotów
kombinowałem tak:
SELECT o.imie, o.nazwisko, FROM osoba o WHERE o.id_osoby IN (SELECT pw.id_osoby FROM pozycje_wyplat pw WHERE o.id_osoby=pw.id_osoby AND pw.data_od>='2013.01.01' AND pw.data_do<'2013.03.31' AND NOT EXISTS (SELECT 1 FROM pozycje_zwrot pz WHERE pz.id_poz_wyplaty=pw.id_poz_wyplaty) ) ) ORDER BY o.nazwisko
dostaję wynik ale tak jakby nie uwzględniał tego czy osoba ma zwrot czy też nie (nie widzi NOT EXISTS)
Jak to napisać