我有3个表格,下面显示了列,
HolidayId, HolidayName, HolidayDate, Comment
EntitlementId, EmployeeId, LeaveTypeId, LeavePeriodId, FromDate
, UptoDate, Entitlementdays
WeekeindId, Weekends
TODO:
创建插入的商店程序
在插入之前,它应检查并计算 holiday
和weekend
表中的日期
如果它在权限表的startdate
和enddate
之间的日期应该减去。
在sql中
答案 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