20 Jan 11:29
BSD 6a
SELECT '' AS ZDANIE_1 FROM dual;
SELECT nazwisko, etat, id_zesp FROM PRACOWNICY WHERE id_zesp IN
(SELECT id_zesp FROM pracownicy WHERE nazwisko = 'BRZEZINSKI') ORDER BY nazwisko;
SELECT '' AS ZDANIE_2 FROM dual;
SELECT p.nazwisko, p.etat, z.nazwa FROM pracownicy p JOIN zespoly z ON p.id_zesp = z.id_zesp WHERE
p.id_zesp IN (SELECT id_zesp FROM pracownicy WHERE nazwisko = 'BRZEZINSKI') ORDER BY nazwisko;
SELECT '' AS ZDANIE_3 FROM dual;
INSERT INTO pracownicy(id_prac, nazwisko, etat, zatrudniony)
VALUES ((SELECT max(id_prac) + 1 FROM pracownicy),
'WOLNY', 'ASYSTENT', DATE '1968-07-01');
SELECT nazwisko, etat, TO_CHAR(zatrudniony, 'yyyy/mm/dd') AS ZATRUDNIONY FROM pracownicy WHERE
(zatrudniony,etat) = (SELECT MIN(zatrudniony), 'PROFESOR' FROM pracownicy WHERE etat = 'PROFESOR');
SELECT '' AS ZDANIE_4 FROM dual;
SELECT nazwisko, TO_CHAR(zatrudniony, 'yyyy/mm/dd') AS ZATRUDNIONY, id_zesp FROM pracownicy WHERE (id_zesp,zatrudniony) IN
(SELECT id_zesp,MAX(zatrudniony) FROM pracownicy GROUP BY id_zesp);
SELECT '' AS ZDANIE_5 FROM dual;
SELECT z.id_zesp, z.nazwa, z.adres FROM zespoly z WHERE NOT EXISTS (SELECT 1 FROM pracownicy p WHERE p.ID_ZESP = z.ID_ZESP);
DELETE FROM pracownicy
WHERE nazwisko = 'WOLNY';
SELECT '' AS ZDANIE_6 FROM dual;
SELECT nazwisko FROM pracownicy WHERE etat = 'PROFESOR' AND id_prac NOT IN (SELECT id_szefa FROM PRACOWNICY WHERE etat = 'STAZYSTA');
SELECT '' AS ZDANIE_7 FROM dual;
SELECT id_zesp, SUM(placa_pod) AS SUMA_PLAC FROM PRACOWNICY GROUP BY id_ZESP HAVING SUM(placa_pod) =
(SELECT MAX (SUM(placa_pod)) FROM pracownicy GROUP BY id_zesp);
SELECT '' AS ZDANIE_8 FROM dual;
SELECT z.nazwa, SUM(p.placa_pod) AS SUMA_PLAC FROM PRACOWNICY p JOIN zespoly z ON z.id_zesp = p.id_zesp GROUP BY z.nazwa HAVING SUM(placa_pod) =
(SELECT MAX (SUM(placa_pod)) FROM pracownicy GROUP BY id_zesp);
SELECT '' AS ZDANIE_9 FROM dual;
SELECT z.nazwa, COUNT(*) AS ILU_PRACOWNIKOW FROM zespoly z JOIN pracownicy p ON z.id_zesp = p.ID_zesp GROUP BY nazwa HAVING COUNT(p.id_zesp) >
(SELECT Count(id_zesp) FROM pracownicy WHERE id_zesp = (SELECT id_zesp FROM zespoly WHERE nazwa = 'ADMINISTRACJA')) order by nazwa;
SELECT '' AS ZDANIE_10 FROM dual;
SELECT etat FROM pracownicy GROUP BY etat HAVING COUNT(ID_prac) = (SELECT MAX(COUNT(id_prac)) FROM pracownicy GROUP by etat) ORDER BY etat;
SELECT '' AS ZDANIE_11 FROM dual;
SELECT etat, LISTAGG (nazwisko, ',') within GROUP (ORDER BY nazwisko) AS pracownicy FROM pracownicy GROUP BY etat HAVING COUNT (id_prac) =
(SELECT MAX (COUNT(id_prac)) FROM pracownicy GROUP BY etat);
SELECT '' AS ZDANIE_12 FROM dual;
SELECT p.nazwisko AS PRACOWNIK,
s.nazwisko AS SZEF
FROM pracownicy p
join pracownicy s
ON s.id_prac = p.id_szefa
WHERE ( s.placa_pod - p.placa_pod ) IN
(SELECT Min(s.placa_pod - p.placa_pod)
FROM pracownicy p
join pracownicy s
ON s.id_prac = p.id_szefa)