我在ServerKeyLog Table下面跟踪服务器级别的所有Key更改。 现在对应于选定的日期范围,我需要检索每个KeyId的最新发布日期记录,如果它是IsActive Flag =' T'。 如果最近的IsActive Flag =' F'对于任何密钥,我们都不需要检索该密钥。
感谢您的时间。
答案 0 :(得分:2)
要获取有关最新ISACTIVE = T的ID的所有信息,请使用以下查询:
select *
from SERVERKEYLOG T1
WHERE (PUBLISHDATE, KEYID) IN
(SELECT MAX(PUBLISHDATE) RECENT, KEYID
FROM SERVERKEYLOG
GROUP BY KEYID)
AND T1.ISACTIVE = 'T'
答案 1 :(得分:2)
假设您的日期范围是8月份的任何日期,您可以这样做:
select *
from (select skl.*,
row_number() over (partition by skl.KeyId order by skl.PublishDate desc) as rn
from ServerKeyLog skl
where skl.PublishDate >= date '2015-08-01'
and skl.PublishDate < date '2015-09-01')
where rn = 1
and IsActive = 'T'
order by KeyId