我正在做一个名为“考勤管理系统”的项目
该公司拥有自己的生物指纹扫描仪,用于检查员工的出勤情况并存储在数据库表中。
该表由 4 个字段组成(ID autonumber, EmployeeNo, CheckTime and CheckType)
Timekeeping系统存储所有员工的日志和考勤,但它没有指定checktype是“I”还是“O”。如下图所示,员工每次登录,系统都会自动存入数据库,但存为“I”,当同一员工再次登录时,又会存为“I”。
我的客户希望它尽可能自动化。一旦员工再次登录,他想将检查类型更改为“O”。
例如:
我是一名员工。我将在今天早上 8 点登录,然后它将存储到数据库中
今天早上 8 点,检查类型为“I”.. 因为我不知道我已经登录,所以我在早上 8:04 再次登录.. 系统再次将其存储为“I”,就像我一样我下午5点要登出,系统也记录为“我”..
我希望它能够自动更新数据库。无需用户提供任何参数。我希望它在一个存储过程中以自动化该过程。
它应该限制在同一员工内:示例:
Employee1 今天上午 8 点登录.. (checktype "I") Employee1 今天上午 11 点再次登录... (checktype "O") employee1 今天下午 12 点再次登录.. (checktype "I") employee1 今天下午 4 点再次登录(checktype “哦”)
标准应限制在员工编号内,仅限检查时间......并且还希望根据给定数据更新检查类型。
旧系统无法将登录存储为“O”,它纯粹是“I”..
这个怎么做?我需要你的投入和帮助!请?
我创建了一个存储过程,但不知道从哪里开始,而且我不知道完成该过程并使其工作..
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE AUTOMATIC_OVERRIDE
@ID INT,
@EMPLOYEENO NVARCHAR(20),
@CHECKTIME DATETIME,
@CHECKTYPE NVARCHAR(1)
AS
SET NOCOUNT ON;
WHILE @ID = (SELECT ID FROM CHECKTIME)
SELECT ID,EMPLOYEENO,CHECKTIME,CHECKTYPE
FROM CHECKTIME
GROUP BY ID,EMPLOYEENO,CHECKTIME,CHECKTYPE
ORDER BY CHECKTIME
GO
请帮我解决这个问题。谢谢。