代码未正确计算Cast / NullIF

时间:2019-06-19 15:58:11

标签: sql express

我正在尝试计算CNC机床的效率。我的代码计算不正确。我不确定为什么。例如,“完成”值是2。PPHOURGOAL是1。8是轮班8小时。

cast(((Completed / 8) /NULLIF(Completed,0) / (PPHOURGOAL  * 8) )* 100 as dec(5,4))  as EightHourShiftEfficiency,   ---Divide the previously calculated production rate by the maximum rate and multiply by 100 to calculate the efficiency rate.

计算应为((2/8)/(1*8))*100 = 2。哪个应该翻译成((.25)/(8))*100=2

但是系统将返回1.5625

2 个答案:

答案 0 :(得分:0)

我猜想整数除法是罪魁祸首。这是您想要的吗?

cast(((Completed / 8.0) /NULLIF(Completed, 0.0) / (PPHOURGOAL * 8.0) ) * 100.0 as dec(5, 4)) as E

答案 1 :(得分:0)

发现我的方式的错误。我的select语句使行加倍,导致我的计算被关闭。