如何选择每天的最小日期、EmployeeID和BranchID



我写" complex "已经有一段时间了。

我有一个表Attendance与列

BranchID (int)
SignDate (DateTime) 
EmployeeID (nvarchar)

每个Branch有几十名员工。

我需要的是每天每个分行最早的SignDateEmployeeID签名的列表。

我尝试了几种方法,但都没有成功。

我正在使用SQL Server.

谢谢。

;WITH src AS 
(
SELECT BranchID, EmployeeID, SignDate,
rn = ROW_NUMBER() OVER (
PARTITION BY BranchID, CONVERT(date, SignDate) 
ORDER BY SignDate, EmployeeID -- break ties
)
FROM dbo.Attendance
-- some kind of WHERE maybe
)
SELECT BranchID, EmployeeID, SignDate
FROM src
WHERE rn = 1
ORDER BY BranchID, SignDate;

参见每组检索n行。

相关内容

  • 没有找到相关文章

最新更新