EDIT: RedsDevils I have edited my code and tested it using your example. This should work now
Bearing in mind that the same employee might change department, or get a promotion through his career, my two joins look for the latest Effective Date for each type.
SELECT derived.[Effective Date],
derived.[Employee Name],
title1.[FieldValue] AS Title,
dept1.[FieldValue] AS Department
FROM
(
SELECT MAX([Effective Date]) AS [Effective Date], [Employee Name]
FROM TableA
GROUP BY [Employee Name]
) derived
-- Inner Join for TITLE
INNER JOIN TableA title1 ON derived.[Employee Name] = title1.[Employee Name]
AND title1.FieldType = 'Title'
AND title1.[Effective Date] = (SELECT MAX(title2.[Effective Date])
FROM TableA title2
WHERE title1.[Employee Name] = title2.[Employee Name]
AND title2.FieldType = 'Title')
-- Inner Join for DEPARTMENT
INNER JOIN TableA dept1 ON derived.[Employee Name] = dept1.[Employee Name]
AND dept1.FieldType = 'Department'
AND dept1.[Effective Date] = (SELECT MAX(dept2.[Effective Date])
FROM TableA dept2
WHERE dept1.[Employee Name] = dept2.[Employee Name]
AND dept2.FieldType = 'Department')
I created a derived table first to get the MAX Effective Date and Employee Name, and aliases it with the name 'derived'. I then created to join to get the last know Title and Department.