Я хочу рассчитать продолжительность между двумя строками, например, между датой начала сбоя и датой окончания для отчета.
Я гуглил и нашел мы можем сделать это, используя ниже:
SELECT TagEventId,TagID,ServerResponse,FaultCode, ReaderID as DeviceID,EventTimeStamp as startDateTime, pDataDate as EnDateTime,DATEDIFF(minute, pDataDate, eventtimestamp) as Duration
FROM (
SELECT *,
LAG(eventtimestamp) OVER (ORDER BY eventtimestamp) pDataDate
FROM tagevents where readerid=25 and tagid='0'
) q
И он возвращает результат, как показано ниже:
То, что мы отображаем в отчете. Существует одно время начала сбоя, которое будет иметь faultCode и TagID = 0. Приложение будет обращаться к API, чтобы проверять снова через каждые 10 минут. Если это возвращает правильный ответ с FaultCode = 0.
Таким образом, может быть несколько записей между датой начала времени отказа и датой окончания времени ошибки.
Я хочу получить разницу между этими двумя значениями в столбце Длительность, и мне нужно отображать только одну запись для каждого сбоя, который будет иметь startDateTime, EndDateTime и Duration of Fault.
Пожалуйста, помогите мне.