[ DragganNS @ 23.11.2006. 22:30 ] @
Kako da izracunam avg za neku kolonu, ali da mi se u slucaju pojavljivanja odredjenog broja ne vrsi izracunavanje? Primjer je za prosjek ocjena ucenika. Ako ucenik ima 1 iz nekog predmeta da se ne racuna prosjek vec po mogucnosti tekst ’pao’.
Hvala!
[ goranvuc @ 24.11.2006. 02:04 ] @
Ima vise resenja na zadatu temu, ovo moze biti jedno od onih koje se brze izvrsavaju na vecem setu podataka:
Code:

SELECT Ucenik.Ime, (CASE WHEN ISNULL(BrojJedinica, 0) = 0 THEN CAST(ProsOcena AS nvarchar(10)) ELSE 'Pao zbog ' + CAST(BrojJedinica AS nvarchar(10)) + ' jedinica' END) AS ProsecnaOcena   
FROM Ucenik 
LEFT JOIN (SELECT AVG(OcenaValue) AS ProsOcena, UcenikID FROM Ocena GROUP BY UcenikID) AS Prosek ON Ucenik.UcenikID = Prosek.UcenikID 
LEFT JOIN (SELECT COUNT(*) AS BrojJedinica, UcenikID FROM Ocena WHERE OcenaValue = 1 GROUP BY UcenikID) AS Padachi ON Ucenik.UcenikID = Padachi.UcenikID 

To ti je to, nisam probao pa izvini ako ima neka greska, mislim da je bitna ideja. Naravno, ovde sam pretpostavio puno stvari, jer nam nisi specificirao kako se zovu tabele i polja "u igri".