我需要从DateTime
列中选择特定日期的最小值 - 而不是当前日期 - 今天。该数据库是SQL Server 2012。
列包含员工卡刷卡数据。每次刷卡时,都会在DateTime
列中输入一个条目。我想找到进出时间。使用MAX(Datetime)
可以轻松完成OUT时间。但InTime我无法选择当天。有些员工有多次滑动。我想要第一次滑动当前日期。
任何帮助表示感谢。
SELECT
em.EmployeeCode, em.FirstName, em.LastName,
(SELECT DISTINCT [aDateTime]
FROM [Transactions]
ORDER BY [aDateTime] DESC
OFFSET (1) ROWS FETCH NEXT (1) ROWS ONLY) AS InTime,
CONVERT(VARCHAR(8), MAX(t.aDateTime), 108) AS OutTime,
CONVERT(VARCHAR(12), MAX(aDateTime), 103) AS Date
FROM
EmployeeMaster em
INNER JOIN
EmployeeFunctionCards ef ON em.EmployeeMasterID = ef.EmployeeMasterID
INNER JOIN
Transactions t ON ef.EmployeeFunctionCardID = t.EmployeeFunctionCardID
WHERE
t.EventCode = '1'
GROUP BY
em.EmployeeCode, em.FirstName, em.LastName