I think you can use OUTER APPLY in your query and simplify it, e.g.
SELECT DISTINCT HRA.Role AS RoleID, RR.DESCR AS RoleName
from [FIndb].DBO.VW_Finance_Attract HRA
OUTER APPLY (select top (1) * from
[FIndb].[dbo].[vw_FIndb_JobTask] t where t.JobTask = HRA.Role
and t.Status = 'C' ORDER BY EFFDT DESC) RR
Hopefully it is the same result.