根据条件更新表中的所有行

 mobiledu2502862441 发布于 2023-01-14 15:44
  • php
  • 我有一个名为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声明,但没有为我工作.

    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有