This should do it with out temp tables and such... but it may be cumbersome... 
Declare @myTable table (colA int, colB varchar(10), colC int)Insert Into @myTableSelect 556, '21A/16C', 85Union Select 556, '21A/16C', 86Union Select 556, '21A/16C', 107Union Select 556, '21A/16C', 108Union Select 556, '21H/01B', 11Union Select 557, '21A/16C', 87Union Select 557, '21A/16C', 88Union Select 557, '21A/16C', 89Union Select 557, '21A/16C', 90Union Select 557, '21A/16C', 91Select colA, colB, colCS = min(colCS), colCEFrom ( Select colA, colB, colCS, colCE = max(colCE) From ( Select A.colA, A.colB, colCS = A.colC, colCE = B.colC From @myTable A Left Join @myTable B On A.colA = B.colA and A.colB = B.colB Where abs(A.colC-B.colC)+1 = (Select count(distinct colC) from @myTable Where colA = A.colA and colB = A.colB and colC between A.colC and B.colC) ) Z Group By colA, colB, colCS ) AGroup By colA, colB, colCE
Corey