在sql中循环以按用户更新记录

时间:2018-11-23 06:51:59

标签: sql-server loops stored-procedures

我的sql server中有2个表,在第一个表中,我正在保存节假日(officialHolidays),在第二个表中,我正在保存用户申请的假期(appliedLeave),

我将2018年的所有星期六和星期日存储在officialHolidays Table

  

这是一个场景

我有2个用户

用户A申请了1 dec 2018 to 10 dec 2018的休假,因此该用户的7 days的休假申请为B,因为12月2日和9月9日为星期日,8月12日为非工作周六

用户1 dec 2018 to 5 dec 2018申请了4 days的休假,因此该用户的请假申请为Dec 1,因为12月2日是星期日

根据我的数据库,saturdayofficialHolidays,这个星期六在星期六工作,但是现在我将此星期六定为法定假日,我更新了appliedLeave,现在我想更新{{ 1}}表,以便用户A的LeaveApplied变为6,而用户B的3变为

我想使用循环来更新用户A和用户B的顺序

这是我的更新查询

UPDATE officialHolidays SET              
Active = @Active            
WHERE OfficialID = @OfficialID  

这就是我刚才尝试过的

DECLARE @HolidayDate AS DATE = (SELECT Date FROM officialHolidays WHERE OfficialID = @OfficialID)
    IF(EXISTS(SELECT 1 FROM AppliedLeave WHERE AppliedFrom BETWEEN @HolidayDate AND @HolidayDate
    OR AppliedTo BETWEEN @HolidayDate AND @HolidayDate))
BEGIN
    DECLARE @LeaveTaken AS FLOAT
    DECLARE @LeaveRemaining AS FLOAT
    --I want to add Loop Here
END

如何在此场景中添加循环?

0 个答案:

没有答案