-- Zad.4
select dz.id_dzialu, nazwa, nr_akt, nazwisko, data_zatr, data_zwol
from pracownicy pr left join dzialy dz
on(pr.id_dzialu=dz.id_dzialu) where (data_zwol is NULL or data_zwol>=sysdate)
and data_zatr<=sysdate and data_zatr=
(select max(data_zatr) from pracownicy where (data_zwol is NULL or data_zwol>=sysdate)
and data_zatr<=sysdate and nvl(id_dzialu,0)=nvl(pr.id_dzialu,0))order by 1;

select * from (select dz.id_dzialu, nazwa, nr_akt, nazwisko, data_zatr, data_zwol
from pracownicy pr left join dzialy dz
on(pr.id_dzialu=dz.id_dzialu) where (data_zwol is NULL or data_zwol>=sysdate)
and data_zatr<=sysdate) z1
join
(select id_dzialu, max(data_zatr) ma from pracownicy where (data_zwol is NULL or data_zwol>=sysdate)
and data_zatr<=sysdate group by id_dzialu) z2 on (nvl (z1.id_dzialu,0)=nvl(z2.id_dzialu,0) and
data_zatr=ma);

--Zad.7
select z1.kierunek, z1.tryb, nr_indeksu, nazwisko, srednia, mins from
(select kierunek, tryb, min(srednia) mins from studenci
where rok = 2 and stopien = 1 group by kierunek, tryb) z1
join(select * from studenci where rok = 2 and stopien = 1)z2
on(z1.kierunek=z2.kierunek and z1.tryb=z2.tryb and mins*1.1>=srednia);

--Zad.18
select czas , we.id_wedkarza, nazwisko, ga.nazwa gatunek, lo.nazwa lowisko, dlugosc, (select avg(dlugosc) from rejestry
where id_gatunku=ga.id_gatunku and extract(year from czas)= extract(year from re.czas))
from rejestry re join gatunki ga on(re.id_gatunku=ga.id_gatunku) join lowiska lo on(lo.id_lowiska=re.id_lowiska)
join wedkarze we on(we.id_wedkarza=re.id_wedkarza) where dlugosc>(select avg(dlugosc) from rejestry
where id_gatunku=ga.id_gatunku and extract(year from czas)= extract(year from re.czas));

