我正在尝试计算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
。
答案 0 :(得分:0)
我猜想整数除法是罪魁祸首。这是您想要的吗?
cast(((Completed / 8.0) /NULLIF(Completed, 0.0) / (PPHOURGOAL * 8.0) ) * 100.0 as dec(5, 4)) as E
答案 1 :(得分:0)
发现我的方式的错误。我的select语句使行加倍,导致我的计算被关闭。