Untitled - MARKUP 1.45 KB
                                
                                    /*
---Podaj dane 5 uczniów w całej szkole (id,nazwisko,imię,klasa), którzy są zagrożeni usunięciem ze szkoły. Pod uwagę należy wziąć 3 kryteria: niskie wyniki w nauce (końcowa średnia ocen liczona jako średnia ocen z poszczególnych przedmiotów - liczb całkowitych), niska frekwencja, zachowanie (liczba punktów karnych). Zaproponuj rozwiązanie
*/
with sred1 as (
select
u.IdUcznia
,o.IdPrzedmiotu
,CONVERT(DECIMAL(7,0), round (AVG(o.Ocena),0) ) AS sred
from Uczniowie u join Oceny o on u.IdUcznia=o.IdUcznia
group by u.IdUcznia,o.IdPrzedmiotu
), sredk as(
select
s.IdUcznia
,CONVERT(DECIMAL(7,2), round (AVG(s.sred),2) ) AS sred
from sred1 as s
group by s.IdUcznia
), laureaci as (
select
u.IdUcznia
,u.Imie
,u.Nazwisko
,k.Nazwa
,s.sred
,COUNT(n.DataNieobecnosci) as nieob
from Uczniowie as u join Klasy as k on u.IdKlasy=k.IdKlasy join sredk as s on u.IdUcznia=s.IdUcznia left join Nieobecnosci as n on u.IdUcznia=n.IdUcznia
group by u.IdUcznia,u.Imie,u.Nazwisko,k.Nazwa,s.sred
), uwa as(
select
uw.iducznia
,SUM(ru.IloscPunktow) pukty
from Uwagi as uw join RodzajeUwag as ru on uw.IdRodzajuUwagi=ru.IdRodzajuUwagi
group by uw.IdUcznia

)
select top 5
l.IdUcznia
,l.Imie
,l.Nazwisko
,l.Nazwa
,l.sred
,l.nieob
,uw.pukty
,(uw.pukty*l.nieob)/l.sred najgorsi
from laureaci as l join uwa as uw on uw.IdUcznia=l.IdUcznia
order by (uw.pukty*l.nieob)/l.sred desc
                                
                            

Paste Hosted With By Wklejamy.pl