Forum » Programiranje » SQL select težava
SQL select težava
Trinitron ::
Torej, mam sledeči problem (poenostavljeno):
Tabele:
SKUPINA (id_skupine, ime_skupine, datum_zadnje_tekme)
CLAN (id_clana, id_skupine, ime, priimek)
Rad bi dobil tak izpis: (ime_skupine, število članov) sortiran bo datumu zadnje tekme - novejši najprej.
Razmišljam v tej smeri:
SELECT s.ime_skupine, COUNT(c.id_clana)
FROM skupina s, clan c
WHERE s.id_skupine=c.id_skupine
GROUP BY s.ime_skupine
ORDER BY s.datum_zadnje_tekme DESC
Uporabljam bazo Firebird (kar niti ne vem če je relevantno), dobim pa error:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Brez "order by" pa sicer dela...
Kakšna ideja?
Tabele:
SKUPINA (id_skupine, ime_skupine, datum_zadnje_tekme)
CLAN (id_clana, id_skupine, ime, priimek)
Rad bi dobil tak izpis: (ime_skupine, število članov) sortiran bo datumu zadnje tekme - novejši najprej.
Razmišljam v tej smeri:
SELECT s.ime_skupine, COUNT(c.id_clana)
FROM skupina s, clan c
WHERE s.id_skupine=c.id_skupine
GROUP BY s.ime_skupine
ORDER BY s.datum_zadnje_tekme DESC
Uporabljam bazo Firebird (kar niti ne vem če je relevantno), dobim pa error:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Brez "order by" pa sicer dela...
Kakšna ideja?
Trinitron ::
Ok, rešitev je očitno
SELECT s.ime_skupine, COUNT(c.id_clana)
FROM skupina s, clan c
WHERE s.id_skupine=c.id_skupine
GROUP BY s.ime_skupine, s.datum_zadnje_tekme
ORDER BY s.datum_zadnje_tekme DESC
čeprav nimam pojma zakaj moram grupirati tudi po datumu...
Vseeno hvala :)
SELECT s.ime_skupine, COUNT(c.id_clana)
FROM skupina s, clan c
WHERE s.id_skupine=c.id_skupine
GROUP BY s.ime_skupine, s.datum_zadnje_tekme
ORDER BY s.datum_zadnje_tekme DESC
čeprav nimam pojma zakaj moram grupirati tudi po datumu...
Vseeno hvala :)
BlueRunner ::
ORDER BY doda polje na seznam polj, ki se upoštevajo pri rezultatu, čeprav se ga dejansko ne izpiše. "SELECT ... GROUP BY" stavek zahteva, da so pri GROUP BY navedena vsa polja, ki se jih bo upoštevalo (posredno ali pa neposredno). To pomeni, da morajo biti pri njemu navedena tudi polja, ki se sicer nahajajo v GROUP BY.
Teorija pač....
Teorija pač....
Trinitron ::
Aha, hvala za pojasnilo :)
Nisem vedel da ORDER BY doda polje na select list in me je zato sporočilo o napaki malo zavedlo... ;)
Nisem vedel da ORDER BY doda polje na select list in me je zato sporočilo o napaki malo zavedlo... ;)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Podatkovne baze - SQL enostavne poizvedbeOddelek: Programiranje | 2063 (1656) | galu |
» | [SQL] PgAdmin preprosto vprasanje povezano s stolpci v tabeliOddelek: Programiranje | 2198 (1557) | Cvele2011 |
» | MYSQL vprašanjeOddelek: Programiranje | 1795 (1410) | MrBrdo |
» | SQL poizvedbaOddelek: Programiranje | 2166 (1676) | borchi |
» | SQL seštevanjeOddelek: Izdelava spletišč | 1539 (1323) | pizdarija1 |