Ich würde so etwas tun:
;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
Oder vielleicht wäre es x2.rn - 1. Sie müssen sehen. Auf jeden Fall kommt man auf die Idee. Sobald Sie die Tabelle mit sich selbst verbunden haben, können Sie filtern, gruppieren, sortieren usw., um das zu bekommen, was Sie brauchen.