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;