Autor | Zpráva | ||
---|---|---|---|
Arny Profil * |
#1 · Zasláno: 18. 8. 2011, 14:56:09
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 |
#2 · Zasláno: 18. 8. 2011, 15:09:27
SELECT COUNT(*) + 1 FROM table WHERE penize > ( SELECT penize FROM table WHERE uzivatel = 'Pepa') |
||
Arny Profil * |
#3 · Zasláno: 18. 8. 2011, 16:32:02
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 |
#4 · Zasláno: 18. 8. 2011, 16:37:18
Arny:
Něco ve smyslu: SELECT COUNT(*) + 1 FROM table WHERE (czk > pepovy_czk) OR (czk = pepovy_czk AND eur > pepovy_eur) |
||
Kajman_ Profil * |
#5 · Zasláno: 18. 8. 2011, 16:43:37
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 * |
#6 · Zasláno: 18. 8. 2011, 17:42:41
Díky. Moc mi to pomohlo.
|
||
Časová prodleva: 13 let
|
0