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 .........我应该怎样修改?才能保证数据准确性?

解决方案 »

  1.   

    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'
      

  2.   

    select CAST(1700*(1-10/100) AS DECIMAL(30,2))
    结果还是 1700select 1700.00*(1.00-10.00/100)
    的结果是对的
    但每个参与运算的数都格式化太烦琐,想找个简单点的方法......
      

  3.   

    SELECT 1700 * (1 - 10.00 / 100) AS Expr1
      

  4.   

    今日重来CSDN,把这个问题捡了起来,#4楼的方法有效。结贴!