• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

IF NOT EXISTS w Oraclu problem

Object Storage Arubacloud
0 głosów
367 wizyt
pytanie zadane 14 grudnia 2016 w SQL, bazy danych przez Szejk Obywatel (1,510 p.)

Witam pracuje aktualnie w Oraclu

Mam kilka Tabel jak np. pracownik w którym mam kilka kolumn np. ID pracownika imie nazwisko itp następnie mam tabele   Wypożyczenie w której mam kolumny z ID pracownika który coś wypożyczył i ID Pracownika który odebrał zwrot..          chce zwrócić wartość id pracownika który nie zrobił niczego czyli nie pojawił się ani w ID_Pracownik_wyp ani w ID_pracownik_zwrot

Myślałem nad IF NOT EXISTS   niestety coś nie działa

IF NOT EXISTS (SELECT * FROM WYPOZYCZENIE WHERE PRACOWNIK_ID_PRACOWNIKA_WYP=pracow.id_pracownika) 
AND (SELECT * FROM WYPOZYCZENIE WHERE PRACOWNIK_ID_PRACOWNIKA_WYP=pracow.id_pracownika) THEN 
SELECT PRACOWNIK_ID_PRACOWNIKA;

 

ERROR

Error starting at line : 67 in command -
IF NOT EXISTS (SELECT * FROM WYPOZYCZENIE WHERE PRACOWNIK_ID_PRACOWNIKA_WYP=pracow.id_pracownika) AND (SELECT * FROM WYPOZYCZENIE WHERE PRACOWNIK_ID_PRACOWNIKA_WYP=pracow.id_pracownika) THEN
Error report -
Unknown Command


Error starting at line : 68 in command -
SELECT PRACOWNIK_ID_PRACOWNIKA
Error at Command Line : 68 Column : 30
Error report -
SQL Error: ORA-00923: FROM keyword not found where expected
00923. 00000 -  "FROM keyword not found where expected"
*Cause:    
*Action:

 

1 odpowiedź

+1 głos
odpowiedź 14 grudnia 2016 przez jeremus Maniak (59,720 p.)
wybrane 4 stycznia 2017 przez Szejk
 
Najlepsza
odpowiadałem niedawno na podobne pytanie :

-- jesli chcesz np wybrać rekordy z tebeli1, ktorych nie ma w tabeli2 to załatwi to coś takiego :

 

SELECT Table1.*

FROM   Table1

       LEFT JOIN Table2

         ON Table1.Column1 = Table2.Column2

WHERE  Table2.IdColumn IS NULL

-- inne rozwiazania to :

SELECT * FROM Table1 t1 WHERE NOT EXISTS (SELECT * FROM Table2 t2 WHERE t2.Column2 = t1.Column1)

--- lub

SELECT * FROM Table1 WHERE Column1 NOT IN (SELECT Column2 FROM Table2)

--- na podstawie tych przykładów pokombinuj z trzema tabelami

Podobne pytania

0 głosów
2 odpowiedzi 1,944 wizyt
pytanie zadane 7 marca 2016 w SQL, bazy danych przez gromula Stary wyjadacz (10,070 p.)
+1 głos
1 odpowiedź 344 wizyt
0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 9 grudnia 2018 w SQL, bazy danych przez Krystek102 Bywalec (2,440 p.)

92,568 zapytań

141,424 odpowiedzi

319,632 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...