Home Forums SQL Server 2005 T-SQL (SS2K5) finding gaps between termination date and next enrollment date and filter by gap >= 45 days for year 2013 RE: finding gaps between termination date and next enrollment date and filter by gap >= 45 days for year 2013

  • Glad if I could help. I'd really rather not solve the entire puzzle for you, or you won't really learn much from this exercise. Plus I'm not as familiar with your data as you are. But maybe you want to do something like this? (Same as before except adding WHERE conditions to the CTE's.)

    ;WITH

    CTE1 AS

    (

    SELECT

    RN = ROW_NUMBER() OVER

    (PARTITION BY universalmemberid ORDER BY enrollmentdate),

    *

    FROM #nj_members

    WHERE

    (enrollmentdate >= '1/1/2013' AND enrollmentdate < '2014-1-1')

    OR

    (terminationdate >= '1/1/2013' AND terminationdate < '2014-1-1')

    ),

    CTE2 AS

    (

    SELECT

    RN = ROW_NUMBER() OVER

    (PARTITION BY universalmemberid ORDER BY enrollmentdate),

    *

    FROM #nj_members

    WHERE

    (enrollmentdate >= '1/1/2013' AND enrollmentdate < '2014-1-1')

    OR

    (terminationdate >= '1/1/2013' AND terminationdate < '2014-1-1')

    )

    SELECT

    CTE1.*,

    CTE2.enrollmentdate AS nextenrollmentdate,

    DATEDIFF(day, CTE1.terminationdate, CTE2.enrollmentdate) AS diff

    FROM CTE1

    INNER JOIN CTE2 ON

    CTE1.universalmemberid = CTE2.universalmemberid

    AND CTE1.RN + 1 = CTE2.RN

    WHERE

    DATEDIFF(day, CTE1.terminationdate, CTE2.enrollmentdate) >= 45


    "If I had been drinking out of that toilet, I might have been killed." -Ace Ventura