sql SERVER 查询连续三天没打卡的人
时间: 2024-09-24 22:03:56 浏览: 37
查询SQLServer启动时间的三种方法
在SQL Server中查询连续三天未打卡的数据,通常需要涉及到日期范围和窗口函数。假设有一个名为`Attendance`的表,其中包含`EmployeeID`(员工ID)、`打卡日期`(`CheckInDate`)字段,你可以尝试使用以下SQL查询:
```sql
DECLARE @StartDate DATE = DATEADD(day, -3, GETDATE()) -- 获取当前日期前三天
SELECT EmployeeID
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY EmployeeID ORDER BY CheckInDate) AS RowNum
FROM Attendance
WHERE CheckInDate >= @StartDate
) T
WHERE DATEDIFF(day, LAG(CheckInDate, 1) OVER (PARTITION BY EmployeeID ORDER BY CheckInDate), CheckInDate) > 2
AND RowNum = 1; -- 只选择连续缺少一天的第一条记录,实际需求可能会根据业务调整
--
阅读全文