计算周末和假日日期,并从2个日期开始子结构,如果它位于sql

时间:2017-10-24 13:40:57

标签: sql sql-server tsql

我有3个表格,下面显示了列,

  • 假期:HolidayId, HolidayName, HolidayDate, Comment
  • 享权利: EntitlementId, EmployeeId, LeaveTypeId, LeavePeriodId, FromDate , UptoDate, Entitlementdays
  • 周末:WeekeindId, Weekends

TODO: 创建插入的商店程序
在插入之前,它应检查计算 holidayweekend表中的日期 如果它在权限表的startdateenddate之间的日期应该减去。 在sql中

1 个答案:

答案 0 :(得分:0)

尝试这个,因为你已经有周末表和假期表

CREATE PROCEDURE
usp_LeaveDays (@employeeid int) 
as
BEGIN

 DECLARE @fromdate DATE

SET @fromdate =

SELECT convert( varchar(10),fromdate,120) fromdate
FROM Entitlement
WHERE employeeid = @employeeid

DECLARE @enddate DATE

SET @enddate =

SELECT convert ( varchar(10),enddate,120) enddate
FROM entitlement
WHERE employeeid = @employeeid

DECLARE @weekendcount INT

SET @weekendcount =

SELECT Count(*)
FROM Weekend
WHERE weekends BETWEEN @fromdate AND @enddate;

DECLARE @holidayCount INT

SET @holidaycount =

SELECT Count(*)
FROM holidays
WHERE holidaydate BETWEEN @fromdate AND @enddate

DECLARE @Totaldays INT

SET @Totaldays =

SELECT DATEDIFF(day, @fromdate, @enddate)

DECLARE @Actualdays INT

SET @Actualdays = @Totaldays - (@weekendcount + isnull(@holidayCount, 0))

DECLARE @recordCount INT

SELECT @recordCount = @Actualdays

IF (@recordCount > 0)
begin 
insert into -- Enter your script here 

END