Autor Zpráva
Arny
Profil *
Zdravím.
Při psaní jsem narazil na takový stupidní problém a nevím jak dotaz správně zapsat.
Dejme tomu, že mám tabulku "banka" a v ní 2 sloupce(stav_peněz a jméno).
Obsah tabulky je třeba:
1000 Pepa
1500 Adam
500 Ivan
Pořadí podle nejvíce peněz: Adam, Pepa, Ivan
Dejme tomu, že potřebuji zjistit umístění v pořadí od Pepy. Jak dotaz správně zapíšu?
Slovy by to mělo vypadat asi takto: Vypočítej pořadí, kde jméno = Pepa z tabulky banka podle nejvyššího stavu peněz. Vrátit by to mělo dvojku.
Děkuji za radu :-)
Kcko
Profil
SELECT COUNT(*) + 1 FROM table WHERE penize > 
( SELECT penize FROM table WHERE uzivatel  = 'Pepa')
Arny
Profil *
Díky za řešení.
Mám ještě ohledně toho jeden dotaz. Když to chci posuzovat podle 2 sloupců jak to mám zapsat?
Myslím to takhle: Kdyby by se ještě do tabulky přidal jeden sloupec, třeba eura tak by struktura tabulky vypadala takto: stav_korun stav_eur a jméno
obsah by vypadal takhle:
1000 400 Pepa
1000 350 Adam
1500 0 Ivan
Výsledné pořadí by bylo Ivan, Pepa, Adam. Takže prioritou by bylo posouzení výše korun a pak výše eur, kdyby náhodou nastal případ jako v tabulce, že 2 mají stejně korun, ale rozdílně eur.
Joker
Profil
Arny:
Něco ve smyslu:
SELECT COUNT(*) + 1 FROM table WHERE (czk >  pepovy_czk) OR (czk = pepovy_czk AND eur > pepovy_eur)
Kajman_
Profil *
Případně se to dá rovnou cucat, jak v Kckově řešení.
SELECT COUNT(*) + count(distinct t.`jmeno`) poradi
FROM `banka` b
JOIN (SELECT * FROM `banka` WHERE `jmeno`  = 'Pepa') t
ON b.stav_korun>t.stav_korun OR (b.stav_korun=t.stav_korun AND b.stav_eur>t.stav_eur)

Ale nebude to fungovat při null hodnotách v těch sloupečcích.
Arny
Profil *
Díky. Moc mi to pomohlo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0