SQL Server - Cálcular diferença de horas entre início e término de linhas diferentes

Pessoal, boa noite!
pessoal a ideia é fazer o seguinte, pegar a data término e subtrair pela data de início do registor seguinte como mostra na imagem abaixo.
tentei de tudo e não conseguir fazer isso.
A ideia da consulta é retornar a quantidade de tempo que ficou ocioso o setor.

image

Algo parecido com isto?

SELECT datediff(minute, coalesce((select min(t2.inicio) from tabela t2 where t2.inicio>t1.fim), t1.fim), t1.fim 
  from tabela t1

fiz aqui e deu cálculou errado.
exemplo abaixo era pra dar 10 segundos.

image

E qual foi o valor que deu?

image

Duas questões:

  • A diferença está a ser mostrada em minutos, se quiseres segundos tens de alterar o primeiro parametro do datediff
  • De certeza que nao trocaste nenhum inicio/fim na adaptação da query para o teu caso? Parece estar a devolver a diferença entre a data de inicio atual e a data de inicio seguinte

Podes colocar exatamente a query que estas a fazer?

SELECT datediff(minute, coalesce((select min(t2.INICIO) from QRCODE t2 where t2.INICIO>t1.INICIO), t1.INICIO),
t1.INICIO),* FROM QRCODE t1

estou fazendo assim…

La esta, trocaste inicio com termino:

SELECT datediff(second, coalesce((select min(t2.INICIO) from QRCODE t2 where t2.INICIO>t1.termino), t1.termino),
t1.termino),* FROM QRCODE t1

Para não dar valores negativos:

SELECT datediff(second, t1.termino, coalesce((select min(t2.INICIO) from QRCODE t2 where t2.INICIO>t1.termino), t1.termino)),* FROM QRCODE t1

como faço pra retornar no formato hh:mm?

select  CAST((diferencaH) as nvarchar(200))+':'+ CAST(diferencaM as nvarchar(200),*
from (
    SELECT datediff(hour, t1.termino, coalesce(
           (select min(t2.INICIO) 
              from QRCODE t2 
             where t2.INICIO>t1.termino), t1.termino)) as diferencaH,
         datediff(minute, t1.termino, coalesce(
           (select min(t2.INICIO) 
              from QRCODE t2 
             where t2.INICIO>t1.termino), t1.termino))%60 as diferencaM,
            t1.* 
     FROM QRCODE t1
  )
2 curtidas

Obrigado man!

1 curtida