读书人

SQL语句中进行计算的数据精度有关问题

发布时间: 2013-07-16 22:38:05 作者: rapoo

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

读书人网 >VB

热点推荐