У меня есть этот запрос:
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
Результат:
sms_prefix sum( sl.parts ) country_name price total
==================================================================================
45 2 Denmark 0.01 0.019999999552965
63 3 Philippines 2 6
Как вы видите, "total"
неверно для Denmark
, потому что sum( sl.parts )=2
Умножьте с помощью 0.01
сумма должна быть 0.02
.
Поле цены FLOAT
, как я могу CAST, чтобы общее число плавало?
Привет,