Всем привет!
Прошу помощи, совсем застрял.....
Тестовый набор данных:
Мне необходимо собрать новые связи (NewShip) из существующих связей (Ship) по клиентам (CustId), алгоритм таков:
Если у клиентов из разных связей есть совпадение по полю Xcol, то мне нужно соединить эти связи в одну, в противном случае оставить существующую. Пытался сделать через "for xml path('')" во вложенном запросе, но это не то, пните в нужное русло =)
Прошу помощи, совсем застрял.....
Тестовый набор данных:
declare @test table ( CustId VarChar(20) , Ship VarChar(20) , Inn VarChar(20) , Kpp VarChar(20) , Xcol as Inn + '-' + Kpp) insert into @test -- вхождения -- ожидаемый результат values ( 'Cust 1', 'Ship 1', '44', '32') -- New Ship 1 , ( 'Cust 2', 'Ship 1', '32', '44') -- New Ship 1 , ( 'Cust 3', 'Ship 1', '22', '33') -- *Ship 5 New Ship 1 , ( 'Cust 4', 'Ship 1', '11', '11') -- *Ship 3 New Ship 1 , ( 'Cust 5', 'Ship 2', '13', '13') -- New Ship 2 , ( 'Cust 6', 'Ship 2', '33', '13') -- New Ship 2 , ( 'Cust 7', 'Ship 2', '72', '12') -- New Ship 2 , ( 'Cust 8', 'Ship 2', '99', '10') -- New Ship 2 , ( 'Cust 9', 'Ship 3', '11', '11') -- *Ship 1, New Ship 1 , ( 'Cust 10', 'Ship 3', '12', '12') -- New Ship 1 , ( 'Cust 11', 'Ship 4', '14', '14') -- New Ship 3 , ( 'Cust 12', 'Ship 4', '15', '15') -- New Ship 3 , ( 'Cust 13', 'Ship 4', '16', '15') -- New Ship 3 , ( 'Cust 14', 'Ship 4', '17', '15') -- New Ship 3 , ( 'Cust 14', 'Ship 5', '18', '14') -- New Ship 1 , ( 'Cust 15', 'Ship 5', '19', '19') -- New Ship 1 , ( 'Cust 16', 'Ship 5', '20', '20') -- New Ship 1 , ( 'Cust 17', 'Ship 5', '22', '33') -- *Ship 1 New Ship 1 , ( 'Cust 18', 'Ship 6', '22', '22') -- *Ship 7 New Ship 4 , ( 'Cust 19', 'Ship 6', '18', '18') -- New Ship 4 , ( 'Cust 20', 'Ship 7', '22', '22') -- *Ship 6 New Ship 4 , ( 'Cust 21', 'Ship 7', '23', '23') -- New Ship 4
Мне необходимо собрать новые связи (NewShip) из существующих связей (Ship) по клиентам (CustId), алгоритм таков:
Если у клиентов из разных связей есть совпадение по полю Xcol, то мне нужно соединить эти связи в одну, в противном случае оставить существующую. Пытался сделать через "for xml path('')" во вложенном запросе, но это не то, пните в нужное русло =)