So that'sCREATE TABLE COMPLAINTS ( COMPLAINT_NUMBER varchar(20), DETAIL_ID numeric(18,0), REVIEW_LEVEL_ID numeric(18,0), PRIMARY KEY CLUSTERED (COMPLAINT_NUMBER, DETAIL_ID, REVIEW_LEVEL_ID))INSERT INTO COMPLAINTS VALUES ('CCI-1999-36085', 153135, 1)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36085', 153135, 2)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36269', 153230, 1)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36269', 153360, 1)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36269', 153360, 2)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36269', 153360, 3)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36269', 153360, 4)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36271', 153231, 1)INSERT INTO COMPLAINTS VALUES ('CCI-1999-36271', 153231, 2)Yes? This sort of thing should do it:UPDATE COMPLAINTS SET DETAIL_ID = ( SELECT COUNT(*)+1 FROM COMPLAINTS C2 WHERE C2.COMPLAINT_NUMBER = COMPLAINTS.COMPLAINT_NUMBER AND (C2.DETAIL_ID < COMPLAINTS.DETAIL_ID OR (C2.DETAIL_ID = COMPLAINTS.DETAIL_ID AND C2.REVIEW_LEVEL_ID < COMPLAINTS.REVIEW_LEVEL_ID)))
Blimey, what a lot of shouting!