This seems too BIG AND UGLYCREATE TABLE atable (so varchar(6), jo varchar(10) PRIMARY KEY)INSERT atable VALUES ('C2255', '00834-0000')INSERT atable VALUES ('C2255', '00834-0001')INSERT atable VALUES ('C2255', '00834-0002')INSERT atable VALUES ('C2255', '00834-0003')INSERT atable VALUES ('C2255', '00834-0004')INSERT atable VALUES ('C2255', '00834-0005')INSERT atable VALUES ('C2255', '00834-0006')INSERT atable VALUES ('C2255', '00834-0007')INSERT atable VALUES ('C2255', '00834-0008')INSERT atable VALUES ('C2255', '00834-0009')INSERT atable VALUES ('C2255', '00834-0010')INSERT atable VALUES ('C2255', '00834-0011')INSERT atable VALUES ('C2255', '00834-0012')INSERT atable VALUES ('C2255', '01785-0000')INSERT atable VALUES ('C2255', '01813-0000')INSERT atable VALUES ('C2255', '01813-0002')INSERT atable VALUES ('C2255', '01662-0000')INSERT atable VALUES ('C2256', '00918-0000')INSERT atable VALUES ('C2257', '00833-0000')INSERT atable VALUES ('C2257', '00833-0001')INSERT atable VALUES ('C2257', '00833-0002')INSERT atable VALUES ('C2258', '00919-0000')INSERT atable VALUES ('C2259', '00920-0000')INSERT atable VALUES ('C2259', '00920-0001')INSERT atable VALUES ('C2259', '00920-0002')INSERT atable VALUES ('C2259', '00920-0003')INSERT atable VALUES ('C2259', '00920-0004')INSERT atable VALUES ('C2259', '00920-0005')INSERT atable VALUES ('C2259', '00920-0006')INSERT atable VALUES ('C2259', '00920-0007')INSERT atable VALUES ('C2259', '01280-0000')INSERT atable VALUES ('C2259', '01845-0000')INSERT atable VALUES ('C2259', '01938-0000')INSERT atable VALUES ('C2259', '02182-0000')INSERT atable VALUES ('C2259', '02328-0000')--SELECT * FROM atableSELECT DISTINCT RTRIM(Q.so) AS salesorder, Q.jo as joborder FROM atable AS QINNER JOIN (SELECT so, MIN(SUBSTRING(jo,1,5)) AS S FROM atable GROUP BY so) AS TON Q.so = T.so AND SUBSTRING(Q.jo,1,5) = T.SWHERE (RIGHT(Q.jo,4)= '0000')-- below are some additional requirements but just because so-- dosen't stay very pure in atable on the production table-- which isn't an issue in this demo -- AND Q.so <> '' AND LEN(Q.jo) < 6--DROP TABLE atableThe jist of it is for each group of so find the MIN first part of jo (the first jo created under that sales order) and the second part of jo that is '0000'(ideally it would be MIN second part of jo because upon creation the jo with '-0000' may become unuseable then '-0001' would inherit it's role)so is a salesorederjo is a joborder-0000,-0001,-0002..... represent the sub jobsRESULTsalesorder joborder ---------- ---------- C2255 00834-0000C2256 00918-0000C2257 00833-0000C2258 00919-0000C2259 00920-0000