dsada
SELECT '' AS ZADANIE_1 FROM dual;
INSERT INTO pracownicy (id_prac, nazwisko, etat, id_szefa, zatrudniony, placa_pod, placa_dod, id_zesp)
SELECT 250, 'KOWALSKI', 'ASYSTENT', NULL, TO_DATE('13/01/2015', 'DD/MM/YYYY'), 1500, NULL, 10 FROM dual UNION ALL
SELECT 260, 'ADAMSKI', 'ASYSTENT', NULL, TO_DATE('10/09/2014', 'DD/MM/YYYY'), 1500, NULL, 10 FROM dual UNION ALL
SELECT 270, 'NOWAK', 'ADIUNKT', NULL, TO_DATE('01/05/1990', 'DD/MM/YYYY'), 2050, 540, 20 FROM dual;
/* Wyświetlanie do ZAD1 */
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy ORDER BY id_prac DESC FETCH FIRST 3 ROWS ONLY;
SELECT '' AS ZADANIE_2 FROM dual;
UPDATE pracownicy SET placa_pod = placa_pod*1.1, placa_dod=CASE
WHEN placa_dod IS NULL THEN 100
ELSE placa_dod*1.2 END
WHERE id_prac BETWEEN 250 AND 270;
/* Wyświetlanie do ZAD2 */
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy WHERE id_prac BETWEEN 250 AND 270;
SELECT '' AS ZADANIE_3 FROM dual;
INSERT INTO ZESPOLY (id_zesp, nazwa, adres) VALUES (60, 'BAZY DANYCH', 'PIOTROWO 2');
/* Wyświetlanie do ZAD3 */
SELECT * FROM zespoly WHERE id_zesp = 60;
SELECT '' AS ZADANIE_4 FROM dual;
UPDATE pracownicy SET ID_ZESP = (SELECT id_zesp FROM zespoly WHERE nazwa = 'BAZY DANYCH')
WHERE id_prac BETWEEN 250 AND 270;
/* Wyświetlanie do ZAD4 */
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy WHERE id_prac BETWEEN 250 AND 270;
SELECT '' AS ZADANIE_5 FROM dual;
UPDATE pracownicy SET ID_SZEFA = (SELECT id_prac FROM pracownicy WHERE nazwisko = 'MORZY')
WHERE id_prac BETWEEN 250 AND 270;
/* Wyświetlanie do ZAD5 */
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy WHERE id_szefa = (SELECT id_prac FROM pracownicy WHERE nazwisko = 'MORZY') ORDER BY id_prac;
SELECT '' AS ZADANIE_6 FROM dual;
DELETE FROM zespoly WHERE nazwa IN ('BAZY DANYCH');
SELECT * from zespoly;
/* Nie bo w zespole BAZY DANYCH mamy pracownikow */
SELECT '' AS ZADANIE_7 FROM dual;
DELETE FROM pracownicy WHERE nazwisko IN ('KOWALSKI', 'ADAMSKI', 'NOWAK');
DELETE FROM zespoly WHERE nazwa IN ('BAZY DANYCH');
SELECT * from zespoly WHERE nazwa = 'BAZY DANYCH';
SELECT * from pracownicy WHERE id_zesp = 60;
SELECT '' AS ZADANIE_8 FROM dual;
SELECT p.nazwisko, p.placa_pod,
(SELECT AVG(p1.placa_pod) FROM pracownicy p1 WHERE p1.ID_ZESP = p.id_Zesp) *0.1 AS podwyzka
FROM pracownicy p ORDER BY p.nazwisko;
SELECT '' AS ZADANIE_9 FROM dual;
UPDATE pracownicy p SET placa_pod = PLACA_POD + (SELECT AVG(p1.placa_pod)
FROM pracownicy p1 WHERE p1.ID_ZESP = p.id_Zesp) *0.1;
SELECT nazwisko, placa_pod FROM pracownicy ORDER BY NAZWISKO;
SELECT '' AS ZADANIE_10 FROM dual;
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy ORDER BY placa_pod FETCH FIRST 1 ROWS ONLY;
SELECT '' AS ZADANIE_11 FROM dual;
UPDATE pracownicy SET placa_pod = (SELECT ROUND(AVG(placa_pod),2) FROM pracownicy)
WHERE id_prac = (SELECT id_prac FROM pracownicy ORDER BY placa_pod FETCH FIRST 1 ROWS ONLY);
-- wysiwetlanie
SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp
FROM pracownicy WHERE id_prac = 200;
SELECT '' AS ZADANIE_12 FROM dual;
UPDATE PRACOWNICY SET placa_dod = (SELECT AVG(placa_pod) FROM pracownicy where ID_SZEFA = (select ID_PRAC from PRACOWNICY where NAZWISKO = 'MORZY'))
where ID_ZESP = 20;
SELECT nazwisko, placa_dod FROM pracownicy WHERE id_zesp = 20;
SELECT '' AS ZADANIE_13 FROM dual;
UPDATE pracownicy p
SET p.placa_pod = p.placa_pod * 1.25
WHERE p.id_zesp IN (
SELECT z.id_zesp
FROM zespoly z
WHERE z.nazwa = 'SYSTEMY ROZPROSZONE'
);
SELECT p.nazwisko, p.placa_pod
FROM pracownicy p
JOIN zespoly z ON p.id_zesp = z.id_Zesp
WHERE z.nazwa = 'SYSTEMY ROZPROSZONE' ORDER BY p.nazwisko;
SELECT '' AS ZADANIE_14 FROM dual;
SELECT p.nazwisko AS pracownik, p1.nazwisko AS SZEF FROM pracownicy p
JOIN pracownicy p1 ON p1.id_prac = p.id_szefa WHERE p1.nazwisko = 'MORZY';
DELETE FROM (SELECT p.nazwisko AS pracownik, p1.nazwisko AS SZEF FROM pracownicy p
JOIN pracownicy p1 ON p1.id_prac = p.id_szefa WHERE p1.nazwisko = 'MORZY');
SELECT '' AS ZADANIE_15 FROM dual;
SELECT * FROM pracownicy ORDER BY nazwisko;
SELECT '' AS ZADANIE_16 FROM dual;
CREATE SEQUENCE PRAC_SEQ START WITH 300 INCREMENT BY 10;
SELECT '' AS ZADANIE_17 FROM dual;
INSERT INTO pracownicy (id_prac, nazwisko, etat, placa_pod)
VALUES (PRAC_SEQ.nextval, 'Trąbaczyński','STAZYSTA', 1000);
SELECT * FROM pracownicy where nazwisko = 'Trąbaczyński';
SELECT '' AS ZADANIE_18 FROM dual;
UPDATE pracownicy SET placa_dod = prac_seq.currval WHERE nazwisko = 'Trąbaczyński';
SELECT * FROM pracownicy where nazwisko = 'Trąbaczyński';
SELECT '' AS ZADANIE_19 FROM dual;
DELETE FORM pracownicy where nazwisko = 'Trąbaczyński';
SELECT '' AS ZADANIE_20 FROM dual;
CREATE SEQUENCE mala_seq START WITH 0 INCREMENT BY 1 MAXVALUE 10 MINVALUE 0;
SELECT '' AS ZADANIE_21 FROM dual;
DROP SEQUENCE mala_seq;
DROP SEQUENCE prac_seq;