2012-11-11 50 views
1

房地產基本選擇多列:我有表筆與以下數據:SQL:馬克斯()計算值

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

我需要知道,具有最大結束日期的行的ID。我已經成功計算出結束日期爲 從表中選擇max(DateAdd(month,term,StartDate))[這將導致2014年10月1日]

如何獲取ID值和開始日期包含最大結束日期排

+0

你可以更具體的關於SQL的平臺和版本。這個問題的有效解決方案在所有平臺上都不相同。 –

回答

1

MS 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 
0

如果不止一個ID具有相同的極端「結束日期」和你需要他們的人l,你可以試試這個:

SELECT x.id 
FROM (
    SELECT id 
     , RANK () OVER (ORDER BY DateAdd(month, term, StartDate) DESC) as rn 
    FROM T 
    ) x 
WHERE t.rn = 1