Autor Zpráva
caradoc
Profil *
ahoj, prosím potřebuji pomoct se Selectem,
tabulka
==================================
1 | Pavel | 10 Korun
2 | Monika | 20 Korun
3 | Pavel | 40 Korun
4 | Ivana | 10 Korun
5 | Petr | 30 Korun
-------------------------------------------------------------

a potřebuji výsledek kdy SQL vrátí
Pavel 40 Korun
Monika 20 Korun
Ivana 10 Korun
Petr 30 Korun

tzn, vybrat každé jméno ale jen jednou, a jeho poslední vložení peněz,
díky za pomoc, Caradoc
Kajman_
Profil *
select t1.* from tabulka t1, (select max(t2.id) id from tabulka t2 group by t2.jmeno) t3 where t1.id=t3.id
AM_
Profil
SELECT DISTINCT jmeno, vklad FROM tabulka ORDER BY id DESC

Za předpokladu, že poslední výběr má nejvyšší ID. To, co napsal Kajman_ nevyhovuje zadání, to vybírá maximální vklad místo posledního. Navíc je to zbytečně složité.
Kajman_
Profil *
AM_
Ve Vašem selectu bude dvakrát pavel, distinct se dělá na všechny sloupce.

V mém se hledá nejvyšší id pro každé jméno, ne nejvyšší vklad.
caradoc
Profil *
Kajmanova verze pracuje dokonale, ale potřeboval bych věc ještě vyladit,
představ si že Pavel donesl do poklady další 10 korun a ještě další den přidal 5 Eur,
dá se postavit selekt který pozná že Pavel naposledy přínesl 10 Korun, 5 Eur??? ev. zobrazí poslední další záznam cizí měny, pokud Pavel donese $$
v tabulce je samozřejmě další sloupec který určuje měnu,...
Kajman_
Profil *
group by t2.jmeno, t2.mena
AM_
Profil
Kajman_
Sorry, pravda, to jsem si neuvědomil. Osobně navrhuji tabulky jinak (do jedné bych dal klienty a do druhé transakce), takže jsem trochu střelil od boku.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0