There are multiple ways to do this. The first one is most likely the easiest. This is the exact same idea as from the link that Rene posted in the comments.
You need to use a subquery in the where clause to get the most recent date with the MAX
function.
SELECT *
FROM [Table]
WHERE Date = (SELECT MAX(T1.Date) FROM [Table] AS T1 WHERE T1.PersonID = Table.PersonID)
In a more complicated version, you could also get the same result with an inner join on itself:
SELECT
TABLE.PersonID
, TABLE.Code
, MaxDate
FROM
[Table]
INNER JOIN
(
SELECT
PersonID
, Max(DATE) AS MaxDate
FROM
[Table]
GROUP BY
PersonID
)
AS T1
ON
(
TABLE.PersonID = T1.PersonID
AND TABLE.Date = T1.MaxDate
)
And you obtain the following :
PersonID Code Date
115 38833 8/14/2019
117 38838 6/13/2018