Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Kompleksni upit (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Baze podataka
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
razbol
Gost





PostPostano: 9:35 sri, 14. 10. 2009    Naslov: Kompleksni upit Citirajte i odgovorite

Trebao bih pomoć oko jednog zadatka.
Tablice su:
Učenik (UceniciID, JMBG,Prezime, Ime)
Predmeti (PredmetiId, SifraPredmeta, NazivPredmeta)
Ocjene (OcjeneID, UceniciID, PredmetiID, Ocjena)

Treba napisati SQL upit koji će za svaki predmet dati broj koliko puta se koja ocjena ponavljala i koja je prosječna ocjena predmeta ako se izuzmu jedinice i to u obliku:

Predmet | Broj jedinica | Broj dvojki | Broj trojki | Broj četvorki | Broj petica | Prosjek (bez jedinica)

Svaka pomoć bi je dobrodošla.
Tnx
Trebao bih pomoć oko jednog zadatka.
Tablice su:
Učenik (UceniciID, JMBG,Prezime, Ime)
Predmeti (PredmetiId, SifraPredmeta, NazivPredmeta)
Ocjene (OcjeneID, UceniciID, PredmetiID, Ocjena)

Treba napisati SQL upit koji će za svaki predmet dati broj koliko puta se koja ocjena ponavljala i koja je prosječna ocjena predmeta ako se izuzmu jedinice i to u obliku:

Predmet | Broj jedinica | Broj dvojki | Broj trojki | Broj četvorki | Broj petica | Prosjek (bez jedinica)

Svaka pomoć bi je dobrodošla.
Tnx


[Vrh]
Gogs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2002. (22:28:12)
Postovi: (155)16
Sarma = la pohva - posuda
= 14 - 11
Lokacija: Zagreb

PostPostano: 10:02 sri, 14. 10. 2009    Naslov: Re: Kompleksni upit Citirajte i odgovorite

[quote="razbol"]Trebao bih pomoć oko jednog zadatka.
Tablice su:
Učenik (UceniciID, JMBG,Prezime, Ime)
Predmeti (PredmetiId, SifraPredmeta, NazivPredmeta)
Ocjene (OcjeneID, UceniciID, PredmetiID, Ocjena)

Treba napisati SQL upit koji će za svaki predmet dati broj koliko puta se koja ocjena ponavljala i koja je prosječna ocjena predmeta ako se izuzmu jedinice i to u obliku:

Predmet | Broj jedinica | Broj dvojki | Broj trojki | Broj četvorki | Broj petica | Prosjek (bez jedinica)

Svaka pomoć bi je dobrodošla.
Tnx[/quote]

Probaj sa:

select NazivPredmeta, sum(o.Ocjena = 1, 1, 0) as brJedinica, sum(o.Ocjena = 2, 1, 0) as brDvojki, sum(o.Ocjena = 3, 1, 0) as brTrojki, sum(o.Ocjena = 4, 1, 0) as brCetvorki, sum(o.Ocjena = 5, 1, 0) as brPetica, (2*brDvojki+3*brTrojki+4*brCetvorki+5*brPetica)/(brDvojki + brTrojki + brCetvorki + brPetica) as prosjek from Predmeti p left join Ocjene o on p.PredmetiId = o.PredmetiID group by p.PredmetiId


to je ovako nabrzaka iz glave... vjerojatno sam nesto propustio...
razbol (napisa):
Trebao bih pomoć oko jednog zadatka.
Tablice su:
Učenik (UceniciID, JMBG,Prezime, Ime)
Predmeti (PredmetiId, SifraPredmeta, NazivPredmeta)
Ocjene (OcjeneID, UceniciID, PredmetiID, Ocjena)

Treba napisati SQL upit koji će za svaki predmet dati broj koliko puta se koja ocjena ponavljala i koja je prosječna ocjena predmeta ako se izuzmu jedinice i to u obliku:

Predmet | Broj jedinica | Broj dvojki | Broj trojki | Broj četvorki | Broj petica | Prosjek (bez jedinica)

Svaka pomoć bi je dobrodošla.
Tnx


Probaj sa:

select NazivPredmeta, sum(o.Ocjena = 1, 1, 0) as brJedinica, sum(o.Ocjena = 2, 1, 0) as brDvojki, sum(o.Ocjena = 3, 1, 0) as brTrojki, sum(o.Ocjena = 4, 1, 0) as brCetvorki, sum(o.Ocjena = 5, 1, 0) as brPetica, (2*brDvojki+3*brTrojki+4*brCetvorki+5*brPetica)/(brDvojki + brTrojki + brCetvorki + brPetica) as prosjek from Predmeti p left join Ocjene o on p.PredmetiId = o.PredmetiID group by p.PredmetiId


to je ovako nabrzaka iz glave... vjerojatno sam nesto propustio...



_________________
Dvije stvari su beskonacne, svemir i ljudska glupost, ali sto se svemira tice nisam posve siguran.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
razbol
Gost





PostPostano: 10:35 sri, 14. 10. 2009    Naslov: Citirajte i odgovorite

Nažalost to nije to. Trebalo bi za svaki predmet izbrojati koliko ima (recimo) zaključenih jedinica, dvojki,...
Nešto kao
[code:1]
SELECT
p.NazivPredmeta AS Predmet,
(SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 1)) AS brJedinica,
(SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 2)) AS brDvojki,
(SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 3)) AS brTrojki,
(SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 4)) AS brCetvorki,
(SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 5)) AS brPetica
FROM
Predmeti p
LEFT OUTER JOIN Ocjene o ON (p.PredmetiID = o.PredmetiID)
GROUP BY
p.NazivPredmeta
[/code:1]

s time da ovo ne broji pojedinačno za svaki predmet nego ukupno iz svih predmeta. Nemogu skontat kako to napravit...
Nažalost to nije to. Trebalo bi za svaki predmet izbrojati koliko ima (recimo) zaključenih jedinica, dvojki,...
Nešto kao
Kod:

SELECT
  p.NazivPredmeta AS Predmet,
  (SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 1)) AS brJedinica,
  (SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 2)) AS brDvojki,
  (SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 3)) AS brTrojki,
  (SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 4)) AS brCetvorki,
  (SELECT COUNT(Ocjena) FROM Ocjene WHERE (Ocjena = 5)) AS brPetica
FROM
  Predmeti p
  LEFT OUTER JOIN Ocjene o ON (p.PredmetiID = o.PredmetiID)
GROUP BY
  p.NazivPredmeta


s time da ovo ne broji pojedinačno za svaki predmet nego ukupno iz svih predmeta. Nemogu skontat kako to napravit...


[Vrh]
Gogs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 17. 10. 2002. (22:28:12)
Postovi: (155)16
Sarma = la pohva - posuda
= 14 - 11
Lokacija: Zagreb

PostPostano: 10:47 sri, 14. 10. 2009    Naslov: Citirajte i odgovorite

Ma krivo sam napisao, zaboravio sam IF, za svaku ocjenu treba napraviti ovakvu izmjenu:

sum(o.Ocjena = 1, 1, 0) zamijeniti sa sum(if(o.Ocjena = 1, 1, 0))
Ma krivo sam napisao, zaboravio sam IF, za svaku ocjenu treba napraviti ovakvu izmjenu:

sum(o.Ocjena = 1, 1, 0) zamijeniti sa sum(if(o.Ocjena = 1, 1, 0))



_________________
Dvije stvari su beskonacne, svemir i ljudska glupost, ali sto se svemira tice nisam posve siguran.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
razbol
Gost





PostPostano: 16:14 sri, 14. 10. 2009    Naslov: Citirajte i odgovorite

Evo odgovora za MSSQL:

[code:1]
SELECT
Predmeti.NazivPredmeta,
sum(CASE WHEN Ocjene.Ocjena = 1 THEN 1 ELSE 0 END) AS Broj1,
sum(CASE WHEN Ocjene.Ocjena = 2 THEN 1 ELSE 0 END) AS Broj2,
sum(CASE WHEN Ocjene.Ocjena = 3 THEN 1 ELSE 0 END) AS Broj3,
sum(CASE WHEN Ocjene.Ocjena = 4 THEN 1 ELSE 0 END) AS Broj4,
sum(CASE WHEN Ocjene.Ocjena = 5 THEN 1 ELSE 0 END) AS Broj5,
ISNULL(((CAST(sum(Ocjene.Ocjena) AS FLOAT) - sum(CASE WHEN Ocjene.Ocjena = 1 THEN 1 ELSE 0 END)) / sum(CASE WHEN Ocjene.Ocjena = 1 THEN 0 ELSE 1 END)), 0) AS Prosjek
FROM
Predmeti
LEFT OUTER JOIN Ocjene ON (Predmeti.PredmetiID = Ocjene.PredmetiID)
GROUP BY
Predmeti.NazivPredmeta
[/code:1]

Hvala Gogsu!
Evo odgovora za MSSQL:

Kod:

SELECT
  Predmeti.NazivPredmeta,
  sum(CASE WHEN Ocjene.Ocjena = 1 THEN 1 ELSE 0 END) AS Broj1,
  sum(CASE WHEN Ocjene.Ocjena = 2 THEN 1 ELSE 0 END) AS Broj2,
  sum(CASE WHEN Ocjene.Ocjena = 3 THEN 1 ELSE 0 END) AS Broj3,
  sum(CASE WHEN Ocjene.Ocjena = 4 THEN 1 ELSE 0 END) AS Broj4,
  sum(CASE WHEN Ocjene.Ocjena = 5 THEN 1 ELSE 0 END) AS Broj5,
  ISNULL(((CAST(sum(Ocjene.Ocjena) AS FLOAT) - sum(CASE WHEN Ocjene.Ocjena = 1 THEN 1 ELSE 0 END)) / sum(CASE WHEN Ocjene.Ocjena = 1 THEN 0 ELSE 1 END)), 0) AS Prosjek
FROM
  Predmeti
  LEFT OUTER JOIN Ocjene ON (Predmeti.PredmetiID = Ocjene.PredmetiID)
GROUP BY
  Predmeti.NazivPredmeta


Hvala Gogsu!


[Vrh]
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Baze podataka Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan