Autor Zpráva
Raider
Profil
Mám takúto tabuľku:

create table tabulka
(
meno_hraca varchar(50),
goly1 int,
goly2 int,
goly3 int,
goly4 int,
tri_naj int
);

Vložím do nej nejaké rôzne hodnoty. Teraz by som však potreboval dostať do "tri_naj" súčet 3 najväčších hodnôt (z goly1,goly2,goly3,goly4). Uvediem to na príklade:

INSERT INTO tabulka (meno_hraca,goly1,goly2,goly3,goly4) values ('Test','5','0','5','5');

Čiže z toho by som potreboval dostať do "tri_naj" hodnotu 15.

Vedel by niekto poradiť aspoň približný postup ako toho docieliť ?
Kajman_
Profil *
Pokud tam jsou ty 4, tak v mysql bych sečetl ty čtyři a odečetl nejmenší číslo (least) z těch čtyř. Plnění buď trigerem nebo updatem. Nebo to neplnit vůbec.

select goly1+goly2+goly3+goly4-least(goly1,goly2,goly3,goly4) as trinaj from tabulka
Raider
Profil
Dik za radu. Ale čo ked bude gólov viac ako 4 ? (goly5-10) Vedel by niekto ešte aj iný spôsob ako to urobiť ?
Kajman
Profil
Asi udělat na každý sloupeček jednoduchý select - ty spojit přes union all, to seřadit sestupně a dát limit 3 a z tohohle cucnout sum toho sloupečku.

A nebo dávat golyx do jiné tabulky, aby se nemusely stále přidávat sloupečky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0