Back to posts Edit this post
Copy content

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)

No files