Home Forums SQL Server 2008 SQL Server 2008 - General Need to Generate Incrementing Number with Conditional Restart - Please Help RE: Need to Generate Incrementing Number with Conditional Restart - Please Help

  • Using just the base test data (w/o the updates)

    ; WITH CTE AS (

    SELECT

    t.KitID,

    t.SubjID,

    t.VISIT,

    t.VISITNUM,

    t.LBDTC,

    ROW_NUMBER() OVER (ORDER BY t.SubjID,t.LBDTC,t.KitID) AS rn1,

    ROW_NUMBER() OVER (PARTITION BY t.VISITNUM ORDER BY t.SubjID,t.LBDTC,t.KitID) AS rn2

    FROM

    #testing t

    )

    SELECT

    c1.KitID,

    c1.SubjID,

    c1.VISIT,

    c1.VISITNUM,

    c1.LBDTC,

    CASE

    WHEN c1.VISITNUM = c2.VISITNUM THEN CAST(ROW_NUMBER() OVER (PARTITION BY c1.VISITNUM + c2.VISITNUM, c1.rn1 - c1.rn2 ORDER BY c1.rn1) AS VARCHAR(5))

    ELSE ''

    END AS VisitSeq

    FROM

    CTE c1

    LEFT JOIN CTE c2

    ON c1.rn1 = c2.rn1 + 1

    AND c1.VISITNUM = c2.VISITNUM

    ORDER BY

    c1.rn1