SQL语句中进行计算的数据精度问题
UPDATE hy_2d_fstemp_b SET
iorimoney=1700*(1-10/100),
iprice=1700*(1-10/100),
ioricost=1700*(1-10/100)/300,
iunitcost=1700*(1-10/100)/300,
ioritaxcost=1700/300,
ioritaxprice=1700*(10/100),
itaxprice=1700*(10/100),
iorisum=1700,
isum=1700
WHERE cinvcode='01'
这样一条语句,执行的结果并不是我想要的
在查询分析器中测试:
select 1700*(1-10/100)
的结果 竟然是 1700 .........
我应该怎样修改?才能保证数据准确性?
[解决办法]
UPDATE hy_2d_fstemp_b SET
iorimoney=CAST(1700*(1-10/100) AS DECIMAL(30,2)),
iprice=CAST(1700*(1-10/100) AS DECIMAL(30,6)),
ioricost=1700*(1-10/100)/300,
iunitcost=1700*(1-10/100)/300,
ioritaxcost=1700/300,
ioritaxprice=1700*(10/100),
itaxprice=1700*(10/100),
iorisum=1700,
isum=1700
WHERE cinvcode='01'
[解决办法]
SELECT 1700 * (1 - 10.00 / 100) AS Expr1