Sicherlich gibt es da mehrere Möglichkeiten, hier eine davon:

with
xMax as
(select person, max(persdat) as persdat from fileb
group by person)

select * from filea a
inner join xMax b on a.person=b.person
inner join fileb c on a.person=c.person and b.persdat=c.persdat