Тонкостей MS SQL не знаю, но общая суть такая:
SELECT t1.Permit_Number, t1.Pass_Time as Enter, t2.Pass_Time as Exit FROM table as t1
LEFT JOIN table as t2 ON (
t1.Permit_Number=t2.Permit_Number AND t2.Permit_Kind='exit'
)
WHERE Pass_Kind='enter'
@antnjfsfds
UPD:
Не заметил, что пар несколько. Можно попробовать тогда так, без хранимки:
SELECT t1.Permit_Number, t1.Pass_Time as Enter,
(
SELECT MIN(t2.Pass_Time)
FROM table as t2
WHERE t2.Pass_Kind='exit' AND t2.Pass_Time>t1.Pass_Time
AND t1.Permit_Number=t2.Permit_Number
) AS Exit
FROM table as t1
WHERE Pass_Kind='enter'
За работоспособность запроса не ручаюсь, проверить щас негде, но идею я думаю вы поняли: для каждого времени входа подзапросом выбираем ближайшее время выхода, которое больше чем время входа