最新的活跃日期结果在oracle

时间:2014-05-11 11:10:20

标签: oracle

我有一个表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。在这方面有谁能帮助我?

谢谢大家。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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