Ik zou zoiets als dit doen:
;WITH x
AS (SELECT *,
Row_number()
OVER(
partition BY employeeid
ORDER BY datestart) rn
FROM employeehistory)
SELECT *
FROM x x1
LEFT OUTER JOIN x x2
ON x1.rn = x2.rn + 1
Of misschien zou het x2.rn - 1 zijn. Je zult het moeten zien. Je snapt het idee in ieder geval. Zodra je de tabel op zichzelf hebt toegevoegd, kun je filteren, groeperen, sorteren, enz. om te krijgen wat je nodig hebt.