SQL Server 除法 不起作用的问题

SELECT  
        CASE WHEN  aa.itax is NULL  THEN aa.fskje ELSE
        aa.fskje  / ( 1 + (tjob.itax / 100))  END  nsjsk , 

        (aa.fskje / 1.17)  AS nsjsk1 ,
        sccyd.*
FROM    scCyd
        INNER JOIN aa  ON scCyd.ccydbh = aa.CCYDH
        LEFT JOIN aaON mcyd.CCYDH = aa.ccydh
上面的语句想得到 nsjsk的值,发现总是得到 和fskje 一样的值,

研究一下发现, ( 1 + (tjob.itax / 100)) 默认为整形,把小数给滤掉了,  在100后面加上.00 就可以了

改为SELECT  
        CASE WHEN  aa.itax is NULL  THEN aa.fskje ELSE
        aa.fskje  / ( 1 + (tjob.itax / 100.00))  END  nsjsk , 

        (aa.fskje / 1.17)  AS nsjsk1 ,
        sccyd.*
FROM    scCyd
        INNER JOIN aa  ON scCyd.ccydbh = aa.CCYDH
        LEFT JOIN aaON mcyd.CCYDH = aa.ccydh

原文地址:https://www.cnblogs.com/zhangzhifeng/p/3193388.html