join on just the next closest date?
Figured it out

SELECT temp1.[file], temp1.[ChangeDate] AS [AddedDate]
,temp1.[OldFolder]
,temp1.[NewFolder]
,(SELECT MIN(temp2.[ChangeDate])
FROM [Changes] AS temp2
WHERE temp2.[OldFolder] = temp1.[NewFolder]
AND temp2.[ChangeDate] &gt; temp1.[ChangeDate]
AND temp2.[file] = temp1.[file]
) AS [RemovedDate]
FROM [Changes] AS temp1