繁体   English   中英

使用JOINS查找第二个最近日期SQL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM