Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.740 pregleda

Najnovija ↓

Subscript out of range 18.01.2008. u 20:10 · pre 228 meseci #1
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]))
GROUP BY S.Ime, S.Prezime, P.NazivPredmeta, P.Nastavnik, R.Ocena, S.BrIndexa
HAVING (((R.Ocena)>=8));

Pokusao sam da napravim report za ovaj query gore preko wizarda ali kada dodam sve iz upita da mi prikaze na report javi mi gresku iz naslova???
Re: Subscript out of range 18.01.2008. u 22:38 · pre 228 meseci #2
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.


:-)

Re: Subscript out of range 18.01.2008. u 22:46 · pre 228 meseci #3
Ne mogu da verujem sta sam napisao :) Svejedno kad pokusam da stavim upit u report ne prihvata ga ista greska?
Re: Subscript out of range 19.01.2008. u 08:11 · pre 228 meseci #4
Nezavisno od načina pisanja query-ja, gde je Zidar u pravu, moja predpostavka je da su podaci konvertovani (recimo iz Excela ili drugog izvora) i da neki podatak u tabeli ne može da se korektno prikaže na izveštaju. Pokušaj da zakačiš fajl sa tabelom, query-jem i reportom. Ili ako te ne mrzi pregledaj tabelu iz koje vučeš podatke.
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: Subscript out of range 19.01.2008. u 12:27 · pre 228 meseci #7
Na sta mislis kad kazer red total?
Sada sam probao da naprpavim upit na osnovu ovog tvog upita i vidi...
Re: Subscript out of range 19.01.2008. u 13:00 · pre 228 meseci #8
Ne mogu da ti dam objašnjenje oko greške "Subscript out of range". I ja dobijem tu grešku kad pokušam preko wizarda da koristim query sa alijasima za nazive tabela. Verovatno ima veze sa time. Ja u principu ne radim sa Wizardima ali evo ti jedan upit Getsbi2 koji će da prođe wizarde.
U prvom primeru ti je bio uključen red Total ali bez neke potrebe. Verovatno je ostao od ranije.
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme