插入时为null

bai53654045 2014-03-31 01:58:45
declare @DepartmentId integer
set @DepartmentId=(select DepartmentId from Employee where EmployeeId=@EmployeeId)
declare @baseSalary integer
set @baseSalary=(select baseSalary from Department where DepartmentId=@DepartmentId)
declare @late integer
set @late=(select late from Department where DepartmentId=@DepartmentId)
declare @early integer
set @early=(select early from Department where DepartmentId=@DepartmentId)
declare @absence integer
set @absence= (select absence from Department where DepartmentId=@DepartmentId)
declare @overtime integer
set @overtime=(select overtime from Department where DepartmentId=@EmployeeId)
declare @Account integer
set @Account=@baseSalary-@late*@lateRecord-@early*@earlyRecord-@absence*@AbsenceRecord+@overtime*@overtimeRecord


在执行插入时显示@Account为null....
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2014-03-31
  • 打赏
  • 举报
回复
---TRY

DECLARE
    @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
發糞塗牆 2014-03-31
  • 打赏
  • 举报
回复
没有环境,所以只能你自己print/select出来了
發糞塗牆 2014-03-31
  • 打赏
  • 举报
回复
每次set之后先print或者select 对应的变量出来看看,我遇到过的类似情况是因为有某个值为null导致整个表达式为null

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧