MySQL select :)

Novák Jiří novak.jiri na sopos.cz
Čtvrtek Červen 27 07:29:57 CEST 2002


Dne pondělí 24 červen 2002 14:16 jste napsal(a):
> zdravim,
>
>   mam malej problem a fakt nechapu proc, poradte...
>
>   mam jednoduchou tabulku kurzu vhledem ke korune: id, datum, zeme1, zeme2
> atd...
>
>  kdyz provedu select min(zeme1) as minimum from kurzy; s tim, ze chci najit
> nejnizsi hodnotu a pak dam
> select datum from kurzy where zeme1=ta_hodnota; tak mi to vrati prazdny
> vysledek, to minimum to najde
>   nevim, jestli bych na neco takovyho mel aplikovat group by apod., stejne
> nevim jak...
>   mozna bude problem nekde kolem toho where, protoze textovy hodnoty mi to
> najde v pohode, celociselny taky, v tabulce mam float(7,3), desetinnou
> tecku samo mam, between mi bere, dokonce vcetne ty nalezeny hodnoty, kdyz
> to zadam rucne, '<' a '>' mi bere taky, jenom ne to '='
>
> BRN

Programator se nikdy! nepokousi porovnavat dve cisla s PLOVOUCI RADOVOU 
CARKOU, protoze dve stejna cisla NEMUSI byt stejne representovana v pameti.
Lisi se pak nejakou setinkou na nejakem nevyznamnem miste, ale porovnani 
nesedi mozno pouzit tes abs(val1-val2)<0.0000001 atd.
 
zvolte jiny datovy typ (pro penezni castky napr typ money ) nebo se 
porozhlidnete po SQL funkci ktera vysledek zaokrouhli (nebo zverstvo -> 
prevede na retezec a porovna)

Stejne problemi jsou i na jinych SQL.
na MS SQL je treba typ money - 64-bitovy int kde posledni 4 mista se berou 
jako desetinna

pokud mate tech hodnot tak 10 000 skuste si je treba secist s ruzne 
nastavenym razenim a uvidite co dostanete

Jira Novak


Další informace o konferenci Test