Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Keď používaš GROUP BY, tak môžeš vybrať len stĺpce, podľa ktorých zoskupuješ (v tomto prípade Sklad.…
los 19.04.2008 22:24
los
A nebo musi ty sloupce strcit do agreagacni funkce: Sklad.ID, Max(Sklad.Code) As Code, Max(Sklad.Na…
Jan Fiala 20.04.2008 07:43
Jan Fiala
Myslíš do group by? To sa pýtam len pre zaujímavosť, už mi to funguje.
msx. 20.04.2008 10:09
msx.
Ne. Jsou 2 moznosti: 1. (Los) - do GroupBy pridat vsechny neagregovana pole 2. GroupBy nechat, jak j… poslední
Jan Fiala 20.04.2008 10:59
Jan Fiala

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ť.

Zpět do poradny Odpovědět na původní otázku Nahoru