1

真正的基本:我有以下数据的表 T:

ID   StartDate  Term (months)
----------------------
1    10/1/2012   12
2    10/1/2012   24
3    12/1/2012   12

我需要知道具有最大结束日期的行的 ID。我已经成功地将结束日期计算为 select max( DateAdd(month, term, StartDate) from table [这将导致 10/1/2014]

如何获取包含最大结束日期的行的 ID 值和开始日期?

4

2 回答 2

1

微软 SQL:

SELECT TOP 1 ID, StartDate
FROM T
ORDER BY DateAdd(month, term, StartDate) DESC

MySQL:

SELECT ID, StartDate
FROM T
ORDER BY DateAdd(month, term, StartDate) DESC
LIMIT 1
于 2012-11-11T22:13:09.900 回答
0

如果多个 ID 具有相同的极端“结束日期”并且您都需要它们,您可以试试这个:

SELECT x.id
FROM (
   SELECT id
        , RANK ( ) OVER ( ORDER BY  DateAdd(month, term, StartDate) DESC) as rn
   FROM T
   ) x
WHERE t.rn = 1
于 2012-11-11T23:18:52.920 回答