Согласно вашему коду,
LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate)
Функция LEAD считывает строку LEAD / Next из текущей строки, но при последней записи функция LEAD не нашла ни одной строки, поэтому возвращает дату и время по умолчанию. Для этого случая вам нужно сравнить с датой по умолчанию.
case when LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate)='1900-01-01 00:00:00' then A.CreatedDate else LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate) end
Другой способ, вместо LEAD (A.CreatedDate, 1,0) использовать LEAD (A.CreatedDate, 1, A.CreatedDate).
Таким образом, оптимальным решением будет ...
SELECT
ROW_NUMBER() OVER (Order by A.MDetailID) as Row,
DATEDIFF(SECOND, A.CreatedDate, LEAD (A.CreatedDate,1,A.CreatedDate)OVER (ORDER BY A.CreatedDate))Result
FROM dbo.tbl_VehicleLiveMovementDetail A
Также смотрите на SynaSer (к низу той страницы). Я пользовался его библиотекой TCP/IP в течение достаточно долгого времени теперь и нашел это чрезвычайно простым в использовании и расширяюсь и ожидал бы, что его последовательная comms библиотека будет подобна.
Что-нибудь находится в Delphi, действительно соответствуют требованиям завтрашнего дня? Палка с открытым исходным кодом так или иначе - Если это находится на SourceForge, по крайней мере, у Вас есть источник, и он не исчезнет, если компания, которая делает его, выйдет из бизнеса программного обеспечения Delphi.
Lars Dybdahl недавно вел блог о компоненте TComport с открытым исходным кодом, который это перепрыгнуло назад к жизни, и как поддержка Delphi 2007 и 2009 годов была добавлена.
Блог Lars: http://compaspascal.blogspot.com/2008/11/delphi-bigger-than-c-tcomport-history.html
TComport размещают на SourceForge: http://sourceforge.net/projects/comport/
Используйте любые работы для Вас. Если Turbopower Асинхронный Pro (понятное дело, какое имя) работы затем не изменяют его.:)