因某处要提供员工某月的打卡记,而员工的打卡 都不完整。故弄了个自动生成打卡记录,生成想要的数据给某处。有此需要的可看看。
/*
功能:按某一段时间,自动生成员工的打卡记录
*/
--人事表
CREATE TABLE #Employee(EmployeeID int,ChineseName nvarchar(20))
--考勤表
CREATE TABLE #OnOffDuty(EmployeeID int,Card1 datetime,Card2 datetime,Card3 datetime,Card4 datetime,Card5 datetime,Card6 datetime,CheckDate datetime)
--虚拟人事信息
INSERT INTO #Employee
SELECT 1,'谭XX' UNION ALL
SELECT 2,'陈XX' UNION ALL
SELECT 3,'张XX' UNION ALL
SELECT 4,'赵XX'
/*
自动生成2023年5月份的考勤打卡时间
方法:使用游标按员工再按日期生成打卡记录
*/
DECLARE @BeginDate datetime
,@EndDate datetime
,@CheckDate datetime
,@EmployeeID int
,@EXECUTE_SQL nvarchar(4000)
,@For int
SELECT @BeginDate='2023-05-01',@EndDate='2023-05-31' ,@EXECUTE_SQL='',@For=0
DECLARE CursorEmployee CURSOR FOR
SELECT EmployeeID FROM #Employee
OPEN CursorEmployee