You can also use this method ( works for both 2000 & 2005)DECLARE @sample TABLE( [name] varchar(10), name_id int)INSERT INTO @sampleSELECT 'X', 2303 UNION ALLSELECT 'X', 2303 UNION ALLSELECT 'Y', 2303 UNION ALLSELECT 'X', 2756 UNION ALLSELECT 'X', 2303 UNION ALLSELECT 'X', 2757 UNION ALLSELECT 'Y', 2312 UNION ALLSELECT 'Y', 2303 UNION ALLSELECT 'Y', 2312 UNION ALLSELECT 'Y', 2315 SELECT [name], name_id, (SELECT COUNT(DISTINCT name_id) + 1 FROM @sample WHERE [name]=t1.[name]AND name_id < t1.name_id) AS 'Items'FROM @sample t1GROUP BY [name],name_idORDER BY [name],name_id
---- output---name name_id Items---------- ----------- -----------X 2303 1X 2756 2X 2757 3Y 2303 1Y 2312 2Y 2315 3(6 row(s) affected)