对于钟表机来说。
这将在午夜自动在表中为晚上忘记打卡的人设置一个时钟记录。我想让它插入一个时钟记录,和他们的时钟记录一样
员工表通常有,employeeID,employeeName,ClockTypeID ClockTypeID是员工当前状态的快速参考(工作(1)或不工作(2))时钟表有ClockID,ClockTypeID,EmployeeID,ClockDate,ClockTime
目前我有(以及我想要它做的事情)
INSERT INTO dbo.Clock(EmployeeID, ClockTypeID, ClockDate, ClockTime)
SELECT EmployeeID, 2, getdate(), [Mininum clock time for current day for current employee]
FROM Employee
WHERE employee.ClockTypeID <> 2;提前感谢!
编辑:更多信息


当查询在晚上运行时,我想在时钟表中为每个ClockTypeID为'1‘(表示他们仍在打卡)的员工插入一行我想要插入的行,我希望日期是当前日期,时间是当天(clocktypeID 1)第一个打卡的时间。这将以他们的打卡时间和日期与他们的打卡时间和日期相同结束。这意味着系统会显示他们当天已经工作了0个小时,这应该是对他们的上级的一个标志,以便他们可以手动更正。
发布于 2016-11-18 01:06:25
您的描述类似于以下内容:
INSERT INTO dbo.Clock(EmployeeID, ClockTypeID, ClockDate, ClockTime)
SELECT EmployeeID, 2, CAST(getdate() as DATE), min(clocktime)
FROM Employee
GROUP BY EmployeeId, CAST(getdate() as DATE)
HAVING SUM(CASE WHEN ClockTypeID = 1 THEN 1
WHEN ClockTypeId = 2 THEN -1
ELSE 0
END) > 0;https://stackoverflow.com/questions/40660894
复制相似问题