Hello guys,
I have following sorting problem and need your help. When executing this SELECT statement:
"SELECT d.id, d.name, d.description, ts.name,
d.opentimestamp, d.initialvalue, d.plmoney, d.performance, d.performancepa,
d.currentopenmoney, d.investedmoney, d.investedpercent, d.cashmoney, d.realizedwinmoney,
d.realizedlossmoney, d.currenttotalvalue, d.depotriskpercent, d.taxesratepercent, d.taxallowance,
d.paidtaxes, d.paidfees FROM c_depots d INNER JOIN c_tradingsystems ts ON d.tradingsystem_id=ts.id
INNERJOIN cx_users_depots cx ON cx.id_depots=d.id INNER JOIN c_users u ON cx.id_users=u.id WHERE u.login='xxxx' ORDER
BYUPPER(CAST (d.currenttotalvalue AS numeric) ) DESC"
the resulting ordering is wrong:
(d.currenttotalvalue)
99999999999,99
9999999999,99
999999999,99
99999,99
100947,51
100251,14
100100
10000000000
10000000000
100000
I would expect:
99999999999,99
9999999999,99
10000000000
10000000000
999999999,99
99999,99
100947,51
100251,14
100100
100000
The column currenttotalvalue has a numeric type with a length of 14 and 2 digits for percision. The initial SELECT
didn'tused the CAST, but the result was also wrong.
I'm (still) using the postgres version 8.2.
Thanks for your support.