【问题标题】:Latest active Date result in oracleoracle 中的最新活动日期结果
【发布时间】:2014-05-11 11:10:19
【问题描述】:

我有一个包含以下数据的表 TABLE_X:

**Sales_ID   Start_Date  End_Date**
 S0001   01-01-2010  31-12-2020
 S0002   01-01-2011  31-12-2021
 S0003   01-01-2012  31-12-2012
 S0004   01-01-2010  31-12-2019

现在我需要编写一个 SQL 查询以获得最新的开始和结束日期,结果将是

**Sales_ID    Start_Date      End_Date**    
 S0002    01-01-2011      31-12-2021

请注意,我使用的是 Oracle DBMS。有人可以在这方面帮助我吗?

谢谢大家。

【问题讨论】:

    标签: oracle


    【解决方案1】:
    select *
    from 
    (
        select your_table.*, row_number() over (order by end_date desc, start_date desc) as seqnum
        from your_table
    ) t
    where seqnum = 1
    

    SQLFiddle demo

    【讨论】:

      【解决方案2】:

      在 Oracle 12 中,您还可以这样做:

      select t.*
      from table t
      order by end_date desc, start_date desc
      fetch first 1 rows only;
      

      【讨论】:

        猜你喜欢
        • 2015-09-06
        • 1970-01-01
        • 2011-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-24
        相关资源
        最近更新 更多