Ne moze kako si napisao. HAVING se primenjuje na agregatnu funkciju (SUM, AVG, MIN, MAX, COUNT). Nisam siguran sta ti tacno treba, ali bi ispravna sintaksa bila
Code:
SELECT S.Ime, S.Prezime, P.NazivPredmeta, P.Nastavnik, AVG(R.Ocena) AS SrednjaOcena
FROM STUDENT AS S, PREDMET AS P, REZULTATIISPITA AS R
WHERE (((S.BrIndexa)=[R].[BRINDEXA]) AND ((R.IDPredmeta)=[P].[IDPREDMETA]))
GROUP BY S.Ime, S.Prezime, P.NazivPredmeta, P.Nastavnik, R.Ocena, S.BrIndexa
HAVING (((R.Ocena)>=8));
Stavio sam AVG(R.Ocena) AS SrednjaOcena umesto R.Ocena
Ako ne radis agregaciju, onda ne vidim cemu ti GROUP BY sluzi, pa bi moglo i ovako:
Code:
SELECT S.Ime, S.Prezime, P.NazivPredmeta, P.Nastavnik, R.Ocena
FROM STUDENT AS S, PREDMET AS P, REZULTATIISPITA AS R
WHERE (((S.BrIndexa)=[R].[BRINDEXA]) AND ((R.IDPredmeta)=[P].[IDPREDMETA]))
AND (((R.Ocena)>=8));
Odavno nisam video ovu starinsku sintaksu za vezivanje tabela, barem ne u MS Access.
Mozda bi trebalo ovako:
Code:
SELECT S.Ime, S.Prezime, P.NazivPredmeta, P.Nastavnik, R.Ocena
FROM STUDENT AS S
JOIN REZULTATIISPITA AS R ON S.BrIndexa = R.BRINDEXA
JOIN PREDMET AS P ON R.IDPredmeta)=[P].[IDPREDMETA]
WHERE R.Ocena>=8
AKo probas Cut/Paste nece ni ovo raditi, ovo je SQL standardna sintaksa a Access nesto drugacije sklapa JOIN.
Imas u Accessu prozor gde se prave kveriji i jednostavno povezes kolone koje te interesuju i gotovo.
Ako koristis JOIN zna se tacno sta je spajanje tabela a sta je uslov. U staroj sintaksi je sve bilo pomesano pa su SQL izrazi bili nejasni i zbog toga.
:-)