Oracle SQL-在最后两个数字中选择位置(即2020财年和2019财年)



我正在尝试检索最近两个财政年度的数字(2020年和2019年(,但我尝试过的都不起作用。在Oracle数据库中,它们存储为数字。

有人能提供一些非常感谢的帮助吗?谢谢

SELECT 
Date_FY
FROM 
Date_Lookup_Tbl_FY
WHERE
Date_FY IN (SELECT Date_FY
FROM Date_Lookup_Tbl_FY
WHERE Date_FY >= Max(Date_FY) - 1
)

这个怎么样?

SELECT 
Date_FY
FROM 
Date_Lookup_Tbl_FY
WHERE
Date_FY >= (SELECT max(Date_FY) - 1
FROM Date_Lookup_Tbl_FY
)

一种方法是使用窗口函数:

select dl.*
from (select dl.*, dense_rank() over (order by date_fy desc) as seqnum
from Date_Lookup_Tbl_FY dl
) dl
where seqnum <= 2;

或者,如果每个财政年度有一行:

select dl.*
from Date_Lookup_Tbl_FY dl
order by date_fy desc
fetch first 2 rows only;

最新更新