Poziom zaawansowany

Zadanie 2

Korzystamy z tabel stworzonych w Zadaniu 1 (i zmodyfikowanych w Zadaniu 2):

  1. Święta idą – wszystkie płace podstawowe rosną o 10%. Uaktualnij dane.
  2. Dokupiono nowy samochód (id 6, biała Toyota Yaris, DBC 1587). Wprowadź go do bazy i przypisz temu, kto zarabia najwięcej z osób nieposiadających jeszcze auta firmowego (podstawa plus premia).
  3. Stwórz widok, w którym zostanie wyświetlone podsumowanie firmy: imię i nazwisko pracownika, dział oraz stanowisko, pensja (podstawa plus premia) oraz czy posiada firmowy samochód (tak/nie) – screen:

 

 

 

 

[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]
  1. UPDATE dzialy

SET placa_podstawowa = placa_podstawowa * 1.1;

 

  1. Wprowadzenie auta do bazy:

INSERT INTO Flota (id_auta, marka, model_auta, kolor, rejestracja, id_prac)

VALUES (6, 'Toyota’, 'Yaris’, 'bialy’, 'DBC 1587′, null);

 

Sprawdzenie, kto zarabia najwięcej:

SELECT pr.id_prac, pr.imie, pr.nazwisko, (dz.placa_podstawowa + pr.premia) AS zarobki

FROM pracownicy pr

INNER JOIN dzialy dz USING(id_dzialu)

WHERE pr.id_auta IS NULL

ORDER BY zarobki DESC

FETCH FIRST row only;

 

Przypisanie samochodu:

UPDATE Pracownicy

SET id_auta = 6 WHERE id_prac = 3;

UPDATE Flota

SET id_prac = 3 WHERE id_auta = 6;

W powyższym zapytaniu zamiast konkretnych wartości można podstawić podzapytania.

Zamiast id_prac (3) w pierwszym UPDATE można wstawić zmodyfikowaną wersję zapytania sprawdzającego kto najwięcej zarabia:

SELECT pr.id_prac

FROM pracownicy pr

INNER JOIN dzialy dz USING(id_dzialu)

WHERE pr.id_auta IS NULL

ORDER BY (dz.placa_podstawowa + pr.premia) DESC

FETCH FIRST row only;

A zamiast id_auta (6) w drugim można podstawić:

SELECT id_auta

FROM Flota

WHERE id_prac IS NULL;

 

  1. CREATE VIEW Podsumowanie AS

SELECT pr.imie ||’ '||pr.nazwisko as pracownik, dz.nazwa_dzialu, dz.stanowisko, (dz.placa_podstawowa + pr.premia) as zarobki,

CASE

WHEN pr.id_auta IS NULL THEN 'Nie’

ELSE 'Tak’

END AS Auto_firmowe

FROM Pracownicy pr inner join Dzialy dz

using (id_dzialu);

[/spoiler]

Alexandretta

Kobieta gracz. Po godzinach pracy, z zapałem i piekielnymi ognikami w oczach biega po lochach i tłucze bogu ducha winne zombie czy inne szkielety. Miłośniczka wszelkiej maści cRPG. Notoryczne problemy z wyborem klasy i rasy, bo wszystko fajne... W chwilach zwątpienia zatraca się przy dźwiękach mieczy, roztrzaskiwanych tarcz i okrzyków bojowych, słuchając wiking metalu z zimnej, niegościnnej, odległej Skandynawii. Czasem zdarzy jej się pograć w jakąś strategię bądź nawet w FPP, ale tylko na easy, żeby nie psuć sobie niepotrzebnie nerwów.

Related Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Back to top button