从两行中选择最早和最晚的日期并返回一行?

时间:2014-04-16 20:18:22

标签: sql sql-server tsql

我们说我有这个结果集:

Title                                CourseEventKey CourseKey   StartDate               EndDate
------------------------------------ -------------- ----------- ----------------------- -----------------------
Branch Summit 2012 - Power of Team   32             657         2012-05-22 08:00:00.000 2012-05-22 17:00:00.000
Branch Summit 2012 - Power of Team   32             657         2012-05-23 08:00:00.000 2012-05-23 17:00:00.000

如您所见,除了StartDateEndDate之外,这些行在每列中都有重复的值。

我需要通过计算最早的CourseEventKey和最新的StartDate,并将结果值添加到相应的列中,将此结果集仅包含EndDate中的不同值。

我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:1)

使用分组很容易完成。

 SELECT name, MAX(enddate), MIN(startdate) FROM MyTable
 GROUP BY name;

答案 1 :(得分:1)

 SELECT Title, CourseEventKey, CourseKey, MIN( StartDate), MAX(StartDate)
 FROM Table
 GROUP BY Title, CourseEventKey, CourseKey