簡體   English   中英

SQL:在計算值上使用Max()選擇多個列

[英]SQL: Select Multiple Columns with Max() on calculated values

真正的基本知識:我的表T包含以下數據:

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

我需要知道具有最大結束日期的行的ID。 我已經從表中成功選擇了max(DateAdd(monthAdd,month,term,StartDate)作為結束日期[這將導致10/1/2014]

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

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

如果多個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM