You could try creating a table to map New CustIDs to Old CustIDs and then use that to get further information.Something like:-- *** Test Data ***CREATE TABLE #temp( CustID int NOT NULL ,PhoneID int NOT NULL)INSERT INTO #tempSELECT 1, 10 UNION ALLSELECT 2, 10 UNION ALLSELECT 3, 11 UNION ALLSELECT 1, 12 UNION ALLSELECT 2, 12 UNION ALLSELECT 4, 13 UNION ALLSELECT 5, 11 UNION ALLSELECT 5, 15 UNION ALLSELECT 5, 18-- *** End Test Data ***CREATE TABLE #New2Old( NewCustID int NOT NULL ,OldCustID int NOT NULL ,PRIMARY KEY (NewCustID, OldCustID));WITH PhoneDup (PhoneID, CustID)AS( SELECT T.PhoneID, T.CustID FROM #temp T JOIN ( SELECT T1.PhoneID FROM #temp T1 JOIN #temp T2 ON T1.PhoneID = T2.PhoneID AND T1.CustID <> T2.CustID GROUP BY T1.PhoneID ) D ON T.PhoneID = D.PhoneID)INSERT INTO #New2OldSELECT DISTINCT ISNULL(V.CustID, T.CustID) AS NewCustID ,ISNULL(V.DupCustID, T.CustID) AS OldCustIDFROM #Temp T LEFT JOIN ( SELECT D1.CustID, D2.CustID As DupCustID FROM PhoneDup D1 JOIN PhoneDup D2 ON D1.PhoneID = D2.PhoneID AND D1.CustID < D2.CustID ) V ON T.CustID = V.DupCustID