Zadanie 2.

Korzystając z tabel stworzonych w Zadaniu 1:

1. Stwórzmy nowy dział – IT. Dwa stanowiska – Administrator (ID działu – 500) oraz Programista (ID działu – 550). Płaca podstawowa dla obu 3500.

2. Nowy dział trzeba „zaludnić”. Administratorem będzie Andrzej Szyszka (id 12, zatrudniony 5 listopada 2015, urodzony 10 września 1973, nadal pracuje, telefon 667667667, premia 500). Programistą zaś został Adrian Klon (id 13, zatrudniony 2 listopada 2015, urodzony 14 marca 1984, nadal pracuje, telefon 665665665, premia 700).

3. Administratorowi przypisz wolny samochód, jeśli taki jest.

4. Nowa polityka firmy mówi, że nikt nie może dostawać premii niższej niż 350. Uaktualnij dane tak, by były zgodne z tą polityką.

5. Tabela Flota. Każdemu samochodowi przypisz odpowiadający mu numer pracownika (id_prac).

 

Rozwiązanie


1. INSERT ALL
INTO Dzialy(id_dzialu, nazwa_dzialu, stanowisko, placa_podstawowa) VALUES (500, 'IT', 'Administrator', 3500)
INTO Dzialy(id_dzialu, nazwa_dzialu, stanowisko, placa_podstawowa) VALUES(550, 'IT', 'Programista', 3500)
SELECT * FROM dual;

 

2.  INSERT ALL
INTO Pracownicy(id_prac, imie, nazwisko, id_dzialu, id_auta, premia, data_zatrudnienia, data_urodzenia, data_zakonczenia, telefon)
VALUES (12, 'Andrzej', 'Szyszka', 500, null, 500, '2015-11-05', '1973-09-10', null, '667667667')
INTO Pracownicy(id_prac, imie, nazwisko, id_dzialu, id_auta, premia, data_zatrudnienia, data_urodzenia, data_zakonczenia, telefon)
VALUES (13, 'Adrian', 'Klon', 550, null, 700, '2015-11-02', '1984-03-14', null, '665665665')
SELECT * FROM dual;

 

3. Najpierw sprawdzamy, czy mamy na stanie wolne auto:

SELECT *
FROM Flota
WHERE id_auta not in (SELECT id_auta FROM Pracownicy WHERE id_auta is not null);

Mamy jedno wolne auto, więc możemy je przypisać Adminowi:

UPDATE Pracownicy
SET id_auta = '9'
WHERE id_dzialu = '500';

 

4. UPDATE Pracownicy
SET premia = 350
WHERE premia < 350;

 

5. UPDATE Flota
SET id_prac = 1 WHERE id_auta = 12;
UPDATE Flota
SET id_prac = 2 WHERE id_auta = 11;
UPDATE Flota
SET id_prac = 5 WHERE id_auta = 10;
UPDATE Flota
SET id_prac = 12 WHERE id_auta = 9;
UPDATE Flota
SET id_prac = 7 WHERE id_auta = 8;
UPDATE Flota
SET id_prac = 6 WHERE id_auta = 7;

[collapse]