我在试着计算数控机床的效率。我的代码不能正确计算。我不知道为什么。例如,完成值是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
。
发布于 2019-06-20 00:01:39
我猜整数除法是罪魁祸首。这是你想要的吗?
cast(((Completed / 8.0) /NULLIF(Completed, 0.0) / (PPHOURGOAL * 8.0) ) * 100.0 as dec(5, 4)) as E
发布于 2019-06-20 03:16:21
发现了我生活方式的错误。我的select语句使行加倍,这导致我的计算失败。
https://stackoverflow.com/questions/56671759
复制相似问题