我有一个名为Training的表,其中包含Employee ID,Hours,is3ManDay等行.在此表中,可能有多个记录对应于同一个Employee.
我必须计算与每个员工ID相关的小时数,我这样做了
SELECT EMP_ID, SUM(HRS) AS TOTALHRS, is3ManDay from Training GROUP BY EMP_ID, is3ManDay
工作完全正常,但现在我想根据每个员工的总小时数将is3ManDay更新为是或否
@Emp_ID int, @is3ManDay varchar(10) IF (SELECT SUM(Hrs) FROM Training WHERE Emp_ID = @Emp_ID) >= 36 BEGIN UPDATE Training SET is3ManDay = 'Y' Where Emp_ID = @Emp_ID END ELSE UPDATE Training SET is3ManDay = 'N' Where Emp_ID = @Emp_ID
这个也很好但是我必须手动更改@Emp_ID并执行不实用的存储过程.我想在这段代码中包含一个循环,但如果我删除@Emp_ID,它将更新所有具有相同值的行,因为没有选择ID.
WHILE (SELECT SUM(HRS) FROM Training) >= 36 BEGIN UPDATE Training SET is3ManDay = 'Y' END
我尝试了WHILE声明,但没有为我工作.