Это возможно с аналитической функцией.Не знаю, какую СУБД вы используете, но Oracle и я думаю, что SQL Server может это сделать.Я сделал это однажды в Oracle.Есть отличная сторона, объясняющая это здесь Я всегда хожу туда, когда мне нужны эти аналитические функции (обычно это скорее RANK).Вам понадобится функция под названием LEAD.Я думаю, что это будет работать так:
SELECT PersonID, LogonDate, LoggedOnTime
LEAD(LoggedOnTime, 1, 0) OVER (PARTITION BY PersonID ORDER BY LogonDate, LoggedOnTime)
FROM Agent_Logout
Дайте мне знать, если это не работает, как вы хотите (потому что я не проверял это).Затем я постараюсь пойти и заставить его работать.Но я очень уверен ... если ваша база данных допускает синтаксис.