Zadanie 12. Pokaż wszystkich pracowników którzy już nie pracują w banku.

Czego się dowiesz czytając ten wpis:

  • poznasz polecenie JOIN,
  • poznasz wyrażenie IS NOT NULL,
  • powtórzysz wiedzę nt. ALIASÓW i WHERE.

Zadanie 12.

Pokaż wszystkich pracowników którzy już nie pracują w banku. Wyniki przedstaw w postaci kolumn: Imię i nazwisko /  Dział / Data Zakończenia Pracy.

Rozwiązanie:

Podstawowe dane, czyli Imię, Nazwisko, Data Zakończenia Pracy, weźmiemy z tabeli „Pracownicy”. Dane dotyczące działu znajdują się jednak w tabeli „Dzialy”, więc przy określaniu źródła danych musimy zrobić złączenie obu tych tabel. W tabeli Pracownicy (AS P) polem które przechowuje ID działu w którym pracuje pracownik jest „ID_dzialu” a w tabeli Dzialy (AS D)polem przetrzymującym ID działu jest pole o takiej samej nazwie „ID_dzialu”. Aby w prawidłowy sposób odwołać się do tych pól, nadamy tabelom aliasy i tak odpowiednio tabela Pracownicy otrzyma alias P a tabela Dzialy otrzyma alias D. Kod określający źródło danych znajdziecie poniżej.

Kurs SQL. Baza danych Bank_v2. Zadanie 12.

   Teraz zajmijmy się zdefiniowaniem danych które chcemy wyświetlić, czyli sekcja SELECT. Tak jak jest określone w opisie zadania mamy wyświetlić dane w postaci: Imię i nazwisko /  Dział / Data Zakończenia Pracy. No to do dzieła.

   Kurs SQL. Baza danych Bank_v2. Zadanie 12.

Uruchamiamy nasze zapytanie i otrzymujemy wynik.

Kurs SQL. Baza danych Bank_v2. Zadanie 12.

Zwróćmy uwagę, że w kolumnie Data Zakończenia Pracy w niektórych wierszach znajduje się konkretna data a w niektórych wartość NULL, która oznacza wartość pustą, co świadczy o tym, że dana nie istnieje w bazie. Chodzi o to, że jeżeli dany pracownik pracuje jeszcze w banku to wiadomo, że w kolumnie Data Zakończenia Pracy nie może być żadnej wartości.

Czyli jak można wyświetlić tylko tych pracowników, którzy aktualnie nie pracują już w banku? Musimy wyświetlić tylko tych pracowników którzy w kolumnie Data Zakończenia Pracy mają konkretną wartość/datę, czyli którzy w tym polu mają wartość inną niż NULL i do tego celu użyjemy polecenia IS NOT NULL, czyli tak jakbyśmy powiedzieli do kompilatora: wyświetl mi wszystkich pracowników którzy w polu Data Zakończenia Pracy nie mają NULI. Ponieważ będzie to warunek filtrowania musimy umieścić go w klauzuli WHERE.


Kurs SQL. Baza danych Bank_v2. Zadanie 12.

Zestawiają wszystko ze sobą otrzymujemy zapytanie.

Kurs SQL. Baza danych Bank_v2. Zadanie 12.

Po uruchomieniu otrzymujemy wynik.

Kurs SQL. Baza danych Bank_v2. Zadanie 12.

Gotowy skrypt