我需要在表格中显示序列号列,列出作业历史记录表中人员的每条记录的计数。每个历史记录都有一个作业开始日期,该编号应按日期的时间顺序列出。 这就是我想要的样子 -
EmployeeID SeqNo. JobStartDate
A0001 1 2006/02/02
A0001 2 2008/04/01
A0001 3 2009/03/01
A0002 1 2005/01/01
A0002 2 2005/04/01
A0003 1 2006/09/01
A0003 2 2007/01/01
A0003 3 2008/01/01
答案 0 :(得分:2)
如果您使用的是SQL Server 2005+或支持ROW_NUMBER() and PARTITION
的任何其他版本的SQL,那么您可以执行以下操作
SELECT EmployeeID,
ROW_NUMBER() OVER (PARTITION BY EmployeeID ORDER BY JobStartDate) AS SeqNo,
JobStartDate
FROM [TABLE]
row_number基于分区(其作用类似于GROUP BY)和ORDER BY创建唯一行。