Na forumu Baze Podataka smo upravo otvorili temu koja se zove 'Ucenici i srednaj ocena'. Tamo ce se o ovom problemu raspraviti detaljnije.
Ne znam kako ti izgledaju tabele, ali bi trebalo nekako ovako:
Ucenici (Ucenik, ime, prezime...)
Predmeti (Predmet)
Ocene (Ucenik, Predmet, Ocena, DatumOcene)
gde su veze
Ucenik : Ocena = 1 : vise
Predmet : Ocena = 1 : vise
sto se svodi na relacije
Ucenik ---< Ocena >------ Predmet
Uoci tabelu Ocene (Ucenik, predmet, Ocena, DatumOcene)
Tamo ce biti tacno jedan red za svaku ocenu doticnog ucenika. I svaka ocena bice iz nekog predmeta. pretpostavka je da jedan ucenik ne moze da u jednom danu dobije dva puta ocenu iz istog predmeta (ovo moze da se promeni, ali neka ovako za trenutak)
Imao bi onda nesto ovako u tabeli Ocene:
Ucenik Predmet Ocena Datum
Milica Math 1 12/14/2006
Laza Math 3 12/14/2006
Goca Math 2 12/14/2006
Petar Math 4 12/14/2006
Milica Biologija 2 12/9/2006
Laza Biologija 5 12/9/2006
Petar Biologija 3 12/9/2006
Goca Fizika 2 12/9/2006
Petar Fizika 3 12/9/2006
Milica Fizika 5 12/9/2006
Milica Math 1 11/14/2006
Laza Math 3 11/14/2006
Goca Math 2 11/14/2006
Petar Math 4 11/14/2006
Sada ako ti treba prosek iz nekog predmeta po uceniku, probaj nesto kao:
SELECT Ucenik, Predmet, AVERAGE(Ocena) AS SrednjaOcena
FROM Ocene
Na reportu, mozes sve ocene da izlistas, pa stavis reoport grouping pr uceniku, pa unutar ucenioka po predmetu i u section footer stavis da ti se racuna AVERAGE. Mislim da to cak i wizard moze da ti uradi.
Ovaj kveri bi mogao da bude spor kad budes imao u bazi jedno 300,000 ucenika sa 2 miliona ocena, ukoliko nisu tabele indeksirane
Cica mica i gotova prica. Lako mozes da dodas skolsku godinu, odeljenje, skolu, nastavnike i eto ti cudo jedno od podataka.
Ako pak tvoja tabela izgleda nesto ovako:
Ucenici (Ucenik, Ime, prezime, Math, Fizika, Biologija, Engleski, SrednjaOcena)
onda necu da ti pomazem uopste jer je to potpuno pogresan pristup i pomoc bi te samo ohrabrila da istrajes na pogresnom putu. To je kao da se drogiras a ja ti dajem pare da nastavis. Ne moze