
Estoy trabajando con MySQL 5.0.1 y tengo la necesidad de manejar tipos de dato moneda, he definido el campo como DECIMAL(19,4)... mi detalle es el siguiente:
Tengo la siguiente tabla con sus respectivos datos:
Le aplico un ORDER BY tarifa
Código MySQL :
id, tarifa, mts. 3 '090908235911', 25.0000, '1-2-3-4' '090908235927', 50.0000, '5-6-7-8' '090908235940', 100.0000, '9-10-11-12' '090908235948', 1000.0000, '13-14-15' '090909091828', 10000.0000, '20'
Al aplicar FORMAT y ORDER BY al campo tarifa obtengo:
Código MySQL :
id, tarifa, mts. 3 '090908235948', '1,000.00', '13-14-15' '090909091828', '10,000.00', '20' '090908235940', '100.00', '9-10-11-12' '090908235911', '25.00', '1-2-3-4' '090908235927', '50.00', '5-6-7-8'
Obviamente porque FORMAT devuelve un tipo de dato cadena.
lo que quiero es poder lograr ordenar correctamente los datos por el campo tarifa despues de aplicado el FORMAT, intente multiplicar por 1 al campo tarifa para forzar la conversion del campo a DECIMAL pero nadamas tocarlo y los resultados cambian a:
Código MySQL :
id, tarifa, mts. 3 '090908235948', 1.00, '13-14-15' '090909091828', 10.00, '20' '090908235911', 25.00, '1-2-3-4' '090908235927', 50.00, '5-6-7-8' '090908235940', 100.00, '9-10-11-12'
lo mismo sucede si aplico TRUNCATE o divido /1...
Se que puedo hacer un
Código MySQL :
SELECT idtarifa AS id,FORMAT(tarifa,2)AS tarifa,valores AS 'mts. 3' FROM (SELECT idtarifa,tarifa,valores FROM tbl_tarifa_serv_med ORDER BY tarifa) tmp
pero... alguien sabe una manera mas optima de lograrlo?

Gracias a todos de antemano...