Home Forums SQL Server 2012 SQL 2012 - General Help with SQL - Calculate time difference for consecutive rows RE: Help with SQL - Calculate time difference for consecutive rows

  • Hi all, thanks for replies. I have updated my query the below way.

    SELECT

    S_ID,

    LAG(S_ACTV_CODE, 1) OVER (PARTITION BY S_ID ORDER BY S_DATETIME ASC) AS S_ACTV_CODE_PREV,

    S_ACTV_CODE,

    S_USER,

    S_DATETIME AS START_TIME,

    LEAD(S_DATETIME, 1) OVER (PARTITION BY S_ID ORDER BY S_DATETIME ASC) AS END_TIME,

    DATEDIFF (SECOND, S_DATETIME,

    LEAD(S_DATETIME, 1) OVER (PARTITION BY S_ID ORDER BY S_DATETIME ASC)) AS DURATION

    FROM (

    SELECT

    S_ID,

    LAG(S_ACTV_CODE, 1, 'N/A') OVER (PARTITION BY S_ID ORDER BY S_DATETIME ASC) AS S_ACTV_CODE_PREV,

    S_ACTV_CODE,

    S_USER,

    S_DATETIME

    FROM TABLE1

    ) X WHERE ISNULL(S_ACTV_CODE_PREV,'') != ISNULL(S_ACTV_CODE,'')

    ORDER BY S_ID, START_TIME;

    The above query worked for me and gave the expected results. Thanks once again for all your replies.