Panie i Panowie bardzo dziekuje wam za odpowiedz rowna sybkosci swiatlla :) , lecz mam problem z jeszcze jednym zadaniem:
W bazie przygotować zapytanie zwracające następujące dane; nazwisko, imię studentów oraz średnią ocen wystawionych w roku1995 przez wykładowców którzy w rankingu według średniej wystawianych ocen są na miejscach od 3 do 7.
Struktura bazy danych:
**Studenci **( IdStudenta,imie,nazwisko,pesel,idGrupy)
Oceny (IdOceny,IdStudenta,IdWykladowcy,IdPrzedmiotu,IdRodzajOceny,DataOceny,Ocena)
Wykladowcy (IdWykl,Nazwisko,Imie,DataUr,Kobieta)
**RodzajeOcen ** (IdRodzaju,Nazwa,Symbol)
Przedmioty (IdPrzedmiotu,Nazwa,IdKierunkuStudiow)
KierunkiStudiow (IdKierunku,NazwaKierunku)
GrupySzkoleniowe (IdGrupy,Nazwa,IdKierunkuStudiow)
Oto moj kod:
Ranking wykladowcow ktorzy w rankingu wystawianych ocen sa od 3 do 7
;WITH TMP as
(
select W.Imie,W.Nazwisko ,avg(Ocena)as sr,dense_rank() over (order by avg(ocena) desc) as drk
from Oceny
as O join Wykladowcy as W on O.IdWykladowcy=W.IdWykladowcy
group by Nazwisko,Imie
)
Select *
from TMP
where drk<8 and drk>2
=========================================================
///Sam ranking Studentow wg sredniej oceny bez uzycia rankingu wykladowcow
;WITH TMP as
(
select S.Imie,S.Nazwisko ,avg(Ocena)as sr,dense_rank() over (order by avg(Ocena) desc) as rankingWykladowcy
from Oceny as O
inner join Wykladowcy as W on O.IdWykladowcy=W.IdWykladowcy
inner join Studenci as S on O.IdStudenta=S.IdStudenta
Where year(DataOceny)=1995
group by S.Nazwisko,S.Imie
)
Select *
from TMP
where rankingWykladowcy<8 and rankingWykladowcy>2
Czy ta to sie jakos ze soba polaczyc?