od zbytovsky » 12. 1. 2011 11:27
ad 1) tohle by určitě nefungovalo, protože když použijeme GROUP BY xxxx, v SELECT smí být pouze xxx a libovolné agregační funkce.
Na cvičení jsme to tuším řešili (nestandardně) přes LIMIT:
Kód: Vybrat vše
SELECT Lod.Nazev, Year(tab1.Datum), suma
FROM
( -- zjistim si, kolik ziskali pirati na danem prepadu
SELECT Prepad.Datum, Prepad.LodID, Sum(SkutecneVykupne) AS suma
FROM Prepad NATURAL JOIN UnosOsoby
WHERE UnosOsoby.JeZajmut = FALSE -- uz je propusten za vykupne
GROUP BY Prepad.Datum, Prepad.LodID
) AS tab1, Lod
WHERE Lod.ID = tab1.LodID
GROUP BY Year(tab1.datum)
ORDER BY suma DESC LIMIT 1
ad 1) tohle by určitě nefungovalo, protože když použijeme GROUP BY xxxx, v SELECT smí být pouze xxx a libovolné agregační funkce.
Na cvičení jsme to tuším řešili (nestandardně) přes LIMIT:
[code]
SELECT Lod.Nazev, Year(tab1.Datum), suma
FROM
( -- zjistim si, kolik ziskali pirati na danem prepadu
SELECT Prepad.Datum, Prepad.LodID, Sum(SkutecneVykupne) AS suma
FROM Prepad NATURAL JOIN UnosOsoby
WHERE UnosOsoby.JeZajmut = FALSE -- uz je propusten za vykupne
GROUP BY Prepad.Datum, Prepad.LodID
) AS tab1, Lod
WHERE Lod.ID = tab1.LodID
GROUP BY Year(tab1.datum)
ORDER BY suma DESC LIMIT 1[/code]