with Ocen as ( select u.IdUcznia, u.Imie, u.Nazwisko, k.Nazwa, p.Nazwa, round(avg(o.Ocena), 0) as Srednia from Uczniowie u join klasy k on u.IdKlasy =k.IdKlasy join Oceny o on o.IdUcznia=u.IdUcznia join Przedmioty p on o.IdOceny=p.IdPrzedmiotu group by u.IdUcznia, u.Imie, u.Nazwisko, k.Nazwa, p.Nazwa ), Srednie as ( select o.IdUcznia, round(avg(o.Srednia), 2) as SredniaOgolna from Ocen o group by o.IdUcznia having round(avg(o.Srednia), 2)>=3.7 ), Uwag as ( select u.IdUcznia, count(uw.IdUwagi) as IleKryt from Uczniowie u join Uwagi uw on u.IdUcznia=uw.IdUcznia join RodzajeUwag r on uw.IdRodzajuUwagi=r.IdRodzajuUwagi group by u.IdUcznia having count(uw.IdUwagi)<=1 ), Nieob as ( select u.IdUcznia, count(n.DataNieobecnosci) as IloscNieob from Uczniowie u join Nieobecnosci n on u.IdUcznia=n.IdUcznia group by u.IdUcznia having count(n.DataNieobecnosci)<=7 ) select * from Ocen o join Nieob n on o.IdUcznia=n.IdUcznia join Uwag u on u.IdUcznia=o.IdUcznia