![](/img/trans.png)
[英]T SQL: Find row in 2nd Table - with most recent Date - Before Date in current Table
[英]Find 2nd Most Recent Date SQL with JOINS
我正在尝试返回SQL中一组项目的第二个最近日期,但是我收到错误'当EXISTS没有引入子查询时,只能在选择列表中指定一个表达式。 这是我的代码:
SELECT ProjectId, max(CreatedDateTime)
FROM NTNote.dbo.nProjectReference P
INNER JOIN NTNote.dbo.nJournal J
ON J.JournalID = P.JournalID
Where CreatedDateTime < (SELECT max(CreatedDateTime), projectid
FROM NTNote.dbo.nProjectReference P
INNER JOIN NTNote.dbo.nJournal J
ON J.JournalID = P.JournalID
Group by ProjectId)
Group by ProjectId
任何帮助将不胜感激!
使用下面的代码输出所需的输出(sql server)。
with cte_grp
as
(SELECT ProjectId,CreatedDateTime,ROW_NUMBER () OVER(PARTITION BY ProjectId ORDER BY CreatedDateTime desc) RNo
FROM NTNote.dbo.nProjectReference P
INNER JOIN NTNote.dbo.nJournal J
ON J.JournalID = P.JournalID)
SELECT *
FROM cte_grp
WHERE RNO=2
您可以使用
Row_Number() over (partition by ProjectId order by CreatedDateTime desc) as rownum
并使用2作为谓词来获取输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.