使用SQL从表中查找指定记录的最早和最晚日期

ton*_*yeb 4 sql sql-server sql-server-2005

我有一个表(在MS SQL 2005中),其中包含一系列日期.我希望能够应用WHERE语句返回一组它们,然后返回哪一个日期是最早的一列,哪一个是另一列的最新日期.这是一个示例表:

ID StartDate  EndDate    Person
1  01/03/2010 03/03/2010 Paul
2  12/05/2010 22/05/2010 Steve
3  04/03/2101 08/03/2010 Paul
Run Code Online (Sandbox Code Playgroud)

所以我想返回Person ='Paul'的所有记录.但是返回类似(最早的)StartDate = 01/03/2010(来自记录ID 1)和(最新)EndDate = 08/03/2010(来自记录ID 3).

提前致谢

Ric*_*ard 9

您需要minmax聚合函数,例如一个非常简单的情况:

select min(StartDate), max(EndDate)
from data
where Person = 'Paul'
Run Code Online (Sandbox Code Playgroud)

您拥有SQL的所有常用功能,因此可以从子查询中进行选择.