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 Databases