SQL 服务器分割超过申报价值

SQL Server division over a declared value

我正在使用 SQL Server 2005,我想检查 "TypeHopper_0x" 值 if = 2,将 "CycleHopper_0x" 添加到 @nat_weight,这部分我是能够完成。现在@nat_weight = 1871

现在我想除以 "cycleHopper_0x) by the @nat_weight and UPDATE the value to "HPR_x_PRCT" 的值,这就是我遇到问题的地方。我用这段代码定位索引 8000,但最终我需要运行 整个 table.

对于料斗 5,操作更新 E 177/1871 = 0.0149

DECLARE @nat_weight INT;
DECLARE @mattype1 INT;
DECLARE @mattype2 INT;
DECLARE @mattype3 INT;
-- get material type, need only hoppers 1-3, hopper 4,5,6 material type will never = 2
SET @mattype1 = (SELECT typehopper_01 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000);
SET @mattype2 = (SELECT typehopper_02 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000);
SET @mattype3 = (SELECT typehopper_03 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000);
-- if material type=2 then add to @nat_weight ,  
IF @mattype1 = 2
    set @nat_weight = (SELECT cyclehopper_01 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000);

IF @mattype2 = 2
    set @nat_weight =@nat_weight+ (SELECT cyclehopper_01 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000);

IF @mattype3 = 2
    set @nat_weight =@nat_weight+ (SELECT cyclehopper_03 FROM mm_Cycle_Data WHERE me38_cycle_data_ndx=8000)


UPDATE mm_Cycle_Data 
Set  HPR_1_PRCT =CycleHopper_01/@nat_weight, --my error might be here
     HPR_2_PRCT =CycleHopper_02/@nat_weight,
     HPR_3_PRCT =CycleHopper_03/@nat_weight,
     HPR_4_PRCT =CycleHopper_04/@nat_weight,
     HPR_5_PRCT =CycleHopper_05/@nat_weight
WHERE me38_cycle_data_ndx=8000

me38_cycle_data_ndx Cycle       SettingHopper_01       SettingHopper_02       SettingHopper_03       SettingHopper_04       SettingHopper_05       SettingHopper_06       CycleHopper_01 CycleHopper_02 CycleHopper_03 CycleHopper_04 CycleHopper_05 CycleHopper_06 TotalHopper_01 TotalHopper_02 TotalHopper_03 TotalHopper_04 TotalHopper_05 TotalHopper_06 TypeHopper_01 TypeHopper_02 TypeHopper_03 TypeHopper_04 TypeHopper_05 TypeHopper_06 Get_Address t_stamp                 HPR_6_PRCT             HPR_3_PRCT             HPR_6_ErrPrct          HPR_3_ErrPrct          HPR_4_ErrPrct          HPR_5_ErrPrct          HPR_2_ErrPrct          HPR_2_PRCT             HPR_5_PRCT             HPR_4_PRCT             HPR_1_ErrPrct          HPR_1_PRCT             CurrentWorkingShift
------------------- ----------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- ------------- ------------- ------------- ------------- ------------- ------------- ----------- ----------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- -------------------
8000                61820       100                    0                      0                      0                      1.39999997615814       0                      11871          0              0              0              177            0              274443072      2059773259     0              0              5744198        23988001       2             1             0             0             3             3             50          2015-10-06 15:16:37.267 0                      0                      0                      0                      0                      -28.5714282989502      0                      0                      0                      0                      0                      1                      2
7999                939         100                    10                     1.5                    0                      0                      0                      21375          2181           334            0              0              0              7115425        388436         107363         0              0              0              2             1             3             0             3             0             38          2015-10-06 15:16:16.043 0                      1.53800475597382       0                      2.53365039825439       0                      0                      -4.2374324798584       9.84164714813232       0                      0                      0                      100                    2
7998                413         0                      100                    0                      0                      0                      0                      0              7962           0              0              0              0              0              3407112        0              0              0              0              1             2             3             0             0             0             39          2015-10-06 15:13:35.420 0                      0                      0                      0                      0                      0                      0                      100                    0                      0                      0                      0                      2
7997                61818       100                    0                      0                      0                      1.39999997615814       0                      11836          0              0              0              175            0              274431201      2059773259     0              0              5744021        23988001       2             1             0             0             3             3             50          2015-10-06 15:13:03.387 0                      1.51998627185822       0                      0                      0                      -28.5714282989502      0                      0                      1                      0                      0                      100                    2

需要将每个值转换为 FLOAT 类型
设置 HPR_1_PRCT =CAST(CycleHopper_01 AS FLOAT)/CAST(@nat_weight AS FLOAT),