Citat:
weleb:dok za većinu drugih vraća dotični error.
Citat:
weleb:
Code:
SELECT nazivZupanija INTO nZupanija ...
SELECT KoefPlaca*IznosOsnovice INTO iPlaca
Imas upit koji je SELECT INTO, on MORA da vrati samo jedan slog.
Ako ti sifRadnik nije unique ili primarni kljuc uvek postoji mogucnost da ce da vrati vise od jedan u prvom upitu, a u drugom ako zupanija.nazivZupanija nije unique ili primarni kljuc isto tako moze da ti se vrati vise od jednog sloga.
Ovo mozes da popravis na 2 nacina
1. valjan nacin, a to je da ti je db model projektujes tako da ne mozes imati ove duplikate (to je doduse pitanje da li je uopste moguce posto ti je mozda cela postavka losa)
2. seljacki nacin, a to je tako da sprecis upit da vrati vise od jednog sloga:
Code:
SELECT nazivZupanija INTO nZupanija
FROM radnik JOIN mjesto ON radnik.pbrStan=mjesto.pbrMjesto
JOIN zupanija ON mjesto.sifZupanija=zupanija.sifZupanija WHERE sifRadnik=sifra
LIMIT 1;
SELECT KoefPlaca*IznosOsnovice INTO iPlaca
FROM radnik JOIN mjesto ON radnik.pbrStan=mjesto.pbrMjesto
JOIN zupanija ON mjesto.sifZupanija=zupanija.sifZupanija WHERE zupanija.nazivZupanija=nZupanija
LIMIT 1;
Ovo naravno nije preporuceni nacin zato sto ti ne znas "koji" ce biti taj jedan rezultat koji ces dobit nazad.
Takodje, zar ne mislis da bi ova dva upita mogao da spojis u jedan ?
Code:
SELECT KoefPlaca*IznosOsnovice INTO iPlaca
FROM radnik JOIN mjesto ON radnik.pbrStan=mjesto.pbrMjesto
JOIN zupanija ON mjesto.sifZupanija=zupanija.sifZupanija
WHERE sifRadnik=sifra
LIMIT 1;
UPDATE radnik SET najvecaPlaca=iPlaca WHERE sifRadnik=sifra;
ovde ti je dovoljno samo da je sifRadnik unique (ili primarni) key.