megs
11/21/2019 - 10:42 PM

Deleting Duplicates

SELECT enrollid INTO #Duplicatestodelete FROM (
              SELECT ROW_NUMBER() OVER(PARTITION BY userid, planid, coverageeffectivedate, coverageterminationdate, effectivedate, terminationdate 
              ORDER BY userid, planid, coverageeffectivedate, coverageterminationdate, effectivedate, terminationdate, savedDateTime DESC) rn, e.*
              FROM enroll e WITH(NOLOCK)
              where planid in (230300,230453,230454,230455,230456,259622,259623,259625,259626,259629)
              and removedDate is null
) a
WHERE rn > 1


BEGIN TRAN
DELETE e
FROM enroll e WITH(NOLOCK)
INNER JOIN #Duplicatestodelete toDelete WITH(NOLOCK)
       ON e.enrollid = toDelete.enrollID
IF @@ROWCOUNT = 7
       COMMIT TRAN
ELSE
       ROLLBACK TRAN

DROP TABLE #Duplicatestodelete