【发布时间】:2018-05-30 14:13:16
【问题描述】:
如何最好地在 where 语句中捕获最新的开始和结束日期(第 2 行)?
START_DATE END_DATE
1 - 1/1/2017 9/30/2017
2- 10/1/2017 12/31/2017
Where start_date <= '2017-12-31' and end_date >= '2017-01-01'
【问题讨论】:
-
使用
ORDER BY START_DATE DESC -
其中 END_DATE = MAX(END_DATE)
-
您可以按开始日期或结束日期排序,但不能让第一行有最长开始日期,第二行有最长结束日期。如果您的意思是列而不是行,您可以使用
MAX(start_date)和MAX(end_date)。 -
不清楚,如果最晚开始日期与最晚结束日期在不同的行怎么办?
-
感谢您的回复。我正在加入合同开始和结束日期所在的这张表。我目前希望加入那些仅在 2017 年的人。然而,有一些在同一年有多行,所以当我加入时,我正在复制值。我们可以只对 2017 日历年使用 max(start_date) 和 max(end_date) 吗?在上面的示例中,我只想加入第 2 行。
标签: sql-server date max where-clause