• 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

0 głosów
83 wizyt
pytanie zadane 14 grudnia 2016 w SQL, bazy danych przez Szejk Obywatel (1,500 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,840 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 535 wizyt
pytanie zadane 7 marca 2016 w SQL, bazy danych przez gromula Stary wyjadacz (10,150 p.)
0 głosów
0 odpowiedzi 31 wizyt
pytanie zadane 9 grudnia 2018 w SQL, bazy danych przez Krystek102 Bywalec (2,390 p.)
0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 20 stycznia 2018 w SQL, bazy danych przez amator1 Początkujący (470 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

63,367 zapytań

109,637 odpowiedzi

229,050 komentarzy

44,352 pasjonatów

Przeglądających: 251
Pasjonatów: 19 Gości: 232

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...