Molim pomoć oko ovih zadataka... Rješavala sam, ali nisam sigurna da sam dobro riješila. Prvi zadatak možda radi, a drugi ne rade najbolje, najteži je četvrti zadatak. Svaka pomoć je dobro došla! Hvala.
Tablice:
ORG (SIFRA_ORG, NAZIV_ORG, ADRESA)
PUT (SIFRA_PUT, SIFRA_ORG, POLAZISTE, ODREDISTE, PRIJEVOZ, TRAJANJE, CIJENA, PRETHODI)
1. Za svako polazište iz Zagreba prikazati odredište, vrstu prijevoza i naziv organizatora.
SELECT p.odrediste, p.prijevoz, o.naziv_org
FROM org AS o INNER JOIN put AS p
ON o.sifra_org=p.sifra_org
WHERE p.polaziste='Zagreb'
2. Prikazati sve podatke o organizatorima koji imaju barem 3 putovanja koja traju duže od 2 noćenja.
SELECT o.*, COUNT (o.naziv_org) AS broj_putovanja
FROM org AS o INNER JOIN put AS p
ON o.sifra_org=p.sifra_org
WHERE p.trajanje >2
GROUP BY o.naziv_org
HAVING broj_putovanja > 2
3. Koja putovanja su jeftinija od prosječne cijene putovanja po organizatoru?
SELECT p.*
FROM org AS o INNER JOIN put AS p
ON o.sifra_org=p.sifra_org
WHERE p.cijena < (SELECT AVG (p.cijena)
FROM org AS o INNER JOIN put AS p
ON o.sifra_org=p.sifra_org)
4. Prikazati odredište i cijenu svakog putovanja, kao i odredište i cijenu putovanja koju mu neposredno prethodi, za putovanja koja su jeftinija od svojeg prethodnika.
SELECT p.odrediste, p.cijena cijena1, p.cijena cijena2, p.prethodi, p.prethodi
ON o.sifra_org=p.sifra_org
WHERE cijena1 < cijena2
5. Prikazati vrstu prijevoza, trajanje i cijenu za sva ona putovanja koja slijede nakon putovanja brodom u Veneciju.
SELECT p.prijevoz, p.trajanje, p.cijena
FROM put AS p
WHERE p.sifra_put > (SELECT p.sifra_put FROM put AS p
WHERE p.odrediste='Venecija'
AND p.prijevoz='brod')
6. Prikazati trajanje i cijenu onih putovanja koje organizira agencija Atlas, a skuplja su od prosječnog putovanja u Rim.
SELECT p.trajanje, p.cijena
FROM org AS o INNER JOIN put AS p
ON o.sifra_org=p.sifra_org
WHERE o.naziv_org='Atlas'
AND p.cijena > (SELECT AVG (p.cijena)
FROM put AS p
WHERE odrediste='Rim')
SQL upiti - Pomoć
- poruka: 2
- |
- čitano: 3.170
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Za koje zadatke sumnjaš da nisu dobri?
1. je ok, u 2. ti uvjet za count nemora ići u select, dovoljno je u having, i grupiraj po svim kolonama iz tablice ORG.
U 3. mislim da ti treba korelirani subquery, znači trebaš naći za svako putovanje koja je prosječna cijena njegovog organizatora i onda usporediti tu vrijednost sa cijenom putovanja.
U 4. ti treba self join.
5. isto. Po sifri puta nemozes reci da je neko putovanje prije ili poslije nekog.
6. izgleda ok.
To ti je brzinska procjena, pa sad ako te nešto više zanima budi konkretnija.