tengo esta consulta:Convertir INT para flotar en SQL
SELECT sl.sms_prefix, sum(sl.parts) , cp.country_name, CAST(SUM(sl.parts) AS NUMERIC(10,4)) * CAST(cp.price AS NUMERIC(10,4))
FROM sms_log sl, sms_transaction st, country_prefix cp
WHERE st.customer_id =1
AND st.sendtime >=1329865200
AND st.sendtime <=1330037999
AND st.sms_trans_id = sl.trans_id
AND sl.sms_prefix = cp.prefix
AND st.customer_id = cp.customer_id
GROUP BY sl.sms_prefix
LIMIT 0 , 30
Resultado:
sms_prefix sum(sl.parts) country_name price total
==================================================================================
45 2 Denmark 0.01 0.019999999552965
63 3 Philippines 2 6
Como se ve el "total"
no es correcta para Denmark
porque sum(sl.parts)=2
Multiplicar con 0.01
el total debe ser 0.02
.
El campo de precio es FLOAT
¿cómo puedo CASTAR el total para flotar?
Saludos,
Gracias heximal, Éxito, por favor ver los cambios en el post original – alkhader
no se olvide de prioridad de las operaciones aritméticas, suma tiene menor prioridad que la multiplicación . (sum (sl.parts) +0.0) * cp.price sería más correcto. – heximal
Sí, necesito que SUM suceda antes de la multiplicación – alkhader