Back to posts Edit this post
Copy content

20 Jan 11:27

BSD 5
select '' as Zadanie_1 from dual; select pracownicy.nazwisko, pracownicy.etat, pracownicy.id_zesp, zespoly.nazwa from PRACOWNICY INNER join ZESPOLY on ZESPOLY.ID_ZESP = PRACOWNICY.ID_ZESP order by pracownicy.nazwisko; select '' as Zadanie_2 from dual; select pracownicy.nazwisko, pracownicy.etat, pracownicy.id_zesp, zespoly.nazwa from PRACOWNICY INNER join ZESPOLY on ZESPOLY.ID_ZESP = PRACOWNICY.ID_ZESP where upper(ZESPOLY.ADRES) like 'PIOTROWO 3A' order by pracownicy.nazwisko; select '' as Zadanie_3 from dual; select nazwisko, etat, placa_pod, etaty.placa_min, placa_max from PRACOWNICY inner join etaty on etat = nazwa order by etat, PRACOWNICY.NAZWISKO; select '' as Zadanie_4 from dual; select nazwisko, etat, placa_pod, placa_min, placa_max, CASE when placa_pod BETWEEN placa_min and placa_max then 'OK' else 'NIE' end as czy_pensja_ok from PRACOWNICY inner join etaty on etat = nazwa order by etat, nazwisko; select '' as Zadanie_5 from dual; select nazwisko, etat, placa_pod, placa_min, placa_max, CASE when placa_pod BETWEEN placa_min and placa_max then 'OK' else 'NIE' end as czy_pensja_ok from PRACOWNICY inner join etaty on etat = nazwa where placa_pod not between placa_min and placa_max order by etat, nazwisko; select '' as Zadanie_6 from dual; select nazwisko, placa_pod, etat, nazwa as kat_plac, placa_min, placa_max from pracownicy inner join etaty on placa_pod between placa_min and placa_max order by nazwisko, KAT_PLAC; select '' as Zadanie_7 from dual; select nazwisko, placa_pod, etat, nazwa as kat_plac, placa_min, placa_max from pracownicy inner join etaty on placa_pod between placa_min and placa_max where etaty.NAZWA = 'SEKRETARKA' order by nazwisko; select '' as Zadanie_8 from dual; select p.nazwisko as pracownik, p.id_prac as id_prac, s.nazwisko as szef, s.id_prac as id_szefa from PRACOWNICY p inner join pracownicy s on p.id_szefa = s.id_prac where p.id_szefa is not null order by p.NAZWISKO; select '' as Zadanie_9 from dual; select p.nazwisko as pracownik, TO_CHAR(p.zatrudniony, 'YYYY.MM.DD') as prac_zatrudniony, s.nazwisko as szef, TO_CHAR(s.zatrudniony, 'YYYY.MM.DD') as szef_zatrudniony, floor(abs(((s.zatrudniony-p.zatrudniony)/365))) as lat from pracownicy p inner join pracownicy s on s.id_prac = p.id_szefa where floor(abs(((s.zatrudniony-p.zatrudniony)/365))) < 10 order by p.zatrudniony, p.NAZWISKO; select '' as Zadanie_10 from dual; select nazwa, count(*) as liczba, avg(placa_pod) from PRACOWNICY inner join zespoly on pracownicy.id_zesp = zespoly.id_zesp group by nazwa; select '' as Zadanie_11 from dual; select nazwa, CASE when count(*) < 3 then 'mały' when count(*) >= 3 and count(*) <= 6 then 'średni' when count(*) >= 7 then 'duży' END as etykieta from PRACOWNICY inner join zespoly on zespoly.id_zesp = PRACOWNICY.ID_ZESP group by nazwa;

No files