Как насчет использования агрегации?
SELECT ed.EeID, ed.Forename, ed.Surname, ed.BirthDate, MAX(pr.RunId)
FROM EeDetails ed INNER JOIN
EeRunBals erb
ON erb.EeID = ed.EeID INNER JOIN
PayrollRuns pr
ON pr.RunID = erb.RunID
WHERE ed.BirthDate < '1994-01-01'
GROUP BY ed.EeID, ed.Forename, ed.Surname, ed.BirthDate
ORDER BY ed.EeId;
О, я вижу, вы не хотите, чтобы идентификатор последнего запуска на человека .Вы хотите последний в целом.В этом случае:
SELECT TOP (1) WITH TIES . . .
FROM EeDetails ed INNER JOIN
EeRunBals erb
ON erb.EeID = ed.EeID INNER JOIN
PayrollRuns pr
ON pr.RunID = erb.RunID
WHERE ed.BirthDate < '1994-01-01'
ORDER BY pr.RunId DESC;
На самом деле он получает идентификатор последнего запуска с кем-то, чья дата рождения меньше '1994-01-01'
.