[green]--Test data[/green]
Declare @Temp Table(MemberId Int, MembId2 VarChar(20), EnrollDate Int, TermDate Int)
Insert Into @Temp Values(8187, '1010602-00', 19960109, NULL )
Insert Into @Temp Values(8187, '1010602-10', 19960109, 19970317)
Insert Into @Temp Values(8187, '1003533-11', 19980128, 19990505)
Insert Into @Temp Values(8187, '1003533-11', 19990506, 20000731)
Insert Into @Temp Values(16978, '1006330-10', 19960118, 19960916)
Insert Into @Temp Values(16978, '1010345-10', 19960918, 19960918)
Insert Into @Temp Values(16978, '1006330-10', 19960918, 19990131)
Insert Into @Temp Values(16978, '1006330-10', 19990201, 20001121)
Insert Into @Temp Values(16978, '1006330-10', 20001122, 20030303)
Insert Into @Temp Values(21304, '1007777-10', 19960618, 19961130)
Insert Into @Temp Values(21304, '1007777-10', 19961201, 19980310)
Insert Into @Temp Values(21304, '1007777-10', 20030922, 20031128)
Insert Into @Temp Values(21304, '1068908-00', 20040301, 20051130)
Insert Into @Temp Values(21304, '1068908-00', 20051201, 20051201)
Insert Into @Temp Values(114477, '1019297-16', 20010307, 20010307)
Insert Into @Temp Values(114477, '1043265-10', 20010307, 20020131)
Insert Into @Temp Values(114477, '1043265-10', 20020402, 20020701)
Insert Into @Temp Values(114477, '1043265-10', 20020715, 20030131)
Insert Into @Temp Values(117933, '1043731-00', 20021205, 20030415)
Insert Into @Temp Values(117933, '1043731-00', 20030416, 20030831)
Insert Into @Temp Values(117933, '1043731-00', 20030901, 20051121)
Insert Into @Temp Values(117933, '1083842-00', 20051208, NULL )
Insert Into @Temp Values(117933, '1043731-00', 20051208, 20051208)
Insert Into @Temp Values(125106, '1047226-00', 20040616, 20040802)
Insert Into @Temp Values(125106, '1047226-00', 20050614, 20060514)
Insert Into @Temp Values(125106, '1078899-00', 20050803, NULL )
Insert Into @Temp Values(125106, '1078931-00', 20050803, 20050803)
Insert Into @Temp Values(125106, '1047226-00', 20060515, NULL )
Insert Into @Temp Values(207871, '1085160-00', 20060614, 20060630)
Insert Into @Temp Values(207871, '1085648-00', 20060701, 20060701)
Insert Into @Temp Values(207871, '1085648-10', 20060701, 20060711)
Insert Into @Temp Values(207871, '1085648-10', 20060712, 20060712)
[green]-- Query starts here[/green]
Declare @Data
Table (RowId Integer Identity(1,1),
MemberId Int,
MembId2 VarChar(20),
EnrollDate Int,
TermDate Int
Primary Key Clustered (MemberId, EnrollDate)
)
Insert Into @Data(MemberId, MembId2, EnrollDate, TermDate)
Select MemberId, Min(MembId2), EnrollDate, Min(TermDate)
From [!]@Temp[/!] [green]-- Your table name here[/green]
Where MemberId Is Not NULL
And IsNull(EnrollDate, -1) <> IsNull(TermDate, -1)
Group By MemberId, EnrollDate
Order By MemberId, EnrollDate
Select RowId - MinRowId + 1 As RankColumn, D.MemberId, D.MembId2, D.EnrollDate, TermDate
From @Data D
Inner Join(
Select Min(RowId) As MinRowId,
MemberId
From @Data
Group By MemberID
) As A On D.MemberId = A.MemberId
Order By RowId