

TQuery - Ako zapísať select s group by
Poprosím o banálnu vec, ktorá ma už dosť vytáča. Nejako som vyšiel z cviku a teraz akosi neviem, kde je chyba. Delphi je v tomto dosť tvrdé.
Mám tabuľky:
create table Sklad (
ID autoinc,
Code varchar(30),
Name varchar(100),
primary key (ID)
)
create table Pohyby (
ID autoinc,
ID_STOCK integer,
Price decimal(12,2),
Pieces integer,
Move varchar(20),
primary key (ID)
)
A tu je pán select:
select
Sklad.ID, Sklad.Code, Sklad.Name, min(Pohyby.Price) as PriceMin, max(Pohyby.Price) as PriceMax
from
Sklad, Pohyby
where
Sklad.ID = Pohyby.ID_STOCK
group by
Sklad.ID
order by
Code
Myslím, že MySQL by to zhltlo a trochu viac robím práve s tým, tak som vyšiel z cviku. Môžte mi prosím pomôcť nájsť chybu.
Keď používaš GROUP BY, tak môžeš vybrať len stĺpce, podľa ktorých zoskupuješ (v tomto prípade Sklad.ID). Z ostatných stĺpcov môžeš získať dáta len pomocou agregačných funkcií (ako napr. MAX alebo SUM). Čiže buď budeš zoskupovať aj podľa Sklad.Code a Sklad.Name, alebo tie dva stĺpce nebudeš vôbec vyberať.
A nebo musi ty sloupce strcit do agreagacni funkce:
Sklad.ID, Max(Sklad.Code) As Code, Max(Sklad.Name) as Name, min(Pohyby.Price) as ...
Myslíš do group by? To sa pýtam len pre zaujímavosť, už mi to funguje.
Ne. Jsou 2 moznosti:
1. (Los) - do GroupBy pridat vsechny neagregovana pole
2. GroupBy nechat, jak je mas a pridat agregaci do Select (nahoru)
Ďakujem.