UPDATE zgzbf
SET gz1 = 6000 * 0.03 + (zl - 6000) * 0.04
WHERE (zl > 6000) AND (int(zl / 3000) = 2) AND (gx = '修布工')
为什么总报int 不是可识别的函数

解决方案 »

  1.   

    UPDATE zgzbf
    SET gz1 = 6000 * 0.03 + (zl - 6000) * 0.04
    WHERE (zl > 6000) AND (Floor(zl / 3000) = 2) AND (gx = '修布工')
      

  2.   

    确实是int有问题,数据库不认识int。
    在SQL Server中使用cast函数坐类型转换。
      

  3.   

    UPDATE zgzbf
    SET gz1 = 6000 * 0.03 + (zl - 6000) * 0.04
    WHERE (zl > 6000) AND ((zl div 3000) = 2) AND (gx = '修布工')
      

  4.   

    你确信你用的数据库有int()函数么?
      

  5.   

    UPDATE zgzbf
    SET gz1 = 6000 * 0.03 + (zl - 6000) * 0.04
    WHERE (zl > 6000) AND ((zl div 3000) = 2) AND (gx = '修布工')
    div:整除
      

  6.   

    int(zl / 3000) = 2
    这一部分有错误,好像是想取整数部分,建议用cast
      

  7.   

    int(zl / 3000) = 2改为:
    (zl div 3000)=2
      

  8.   

    convert(int, zl / 3000))