每次set之后先print或者select 对应的变量出来看看,我遇到过的类似情况是因为有某个值为null导致整个表达式为null

解决方案 »

  1.   

    没有环境,所以只能你自己print/select出来了
      

  2.   

    ---TRYDECLARE
        @DepartmentId INTEGER ,
        @baseSalary INTEGER ,
        @late INTEGER ,
        @early INTEGER ,
        @absence INTEGER ,
        @overtime INTEGER ,
        @Account INTEGER
    SELECT
        @DepartmentId=DepartmentId, @baseSalary=baseSalary, @late=late,
        @early=early, @absence=absence, @overtime=overtime,
        @Account=baseSalary-@late*@lateRecord-@early*@earlyRecord-@absence*@AbsenceRecord+@overtime*@overtimeRecord
    FROM
        Employee AS a
    INNER JOIN Department AS b ON a.EmployeeId=b.EmployeeId
    WHERE
        a.EmployeeId=@EmployeeId