Я пытаюсь объединить записи на основе ClusterID, чтобы иметь обогащенные данные записей клиентов.Данные клиента и комбинации данных
Как я могу сгруппировать следующие данные с помощью MS SQL? Coalesce не будет работать, поскольку записи должны быть в одной строке, чтобы заставить ее работать, и если у меня больше двух совпадений на кластер, это будет утомительная обработка. Использование max по ClusterId во всех столбцах - это обходной путь, который я делаю, но я надеялся, что есть более эффективный способ сделать это.
Есть:
ClusterID,CustomerNo,Name,Email,Mobile,Address,PostalCode,Passport,ProfileNo
100,NULL,Person,[email protected],NULL,OfficeAdd,12345,NULL,123
100,456,Person,[email protected],98765,HomeAdd,34567,P12345,NULL
** Это результат Matching узла SSIS DQS (https://ssisdqsmatching.codeplex.com/). Он может выполнять матч, но не может обработать часть выживания, чтобы получить золотую пластинку.
Хотите:
ClusterID,CustomerNo,Name,Email,Mobile,Address,PostalCode,Passport,ProfileNo
100,456,Person,[email protected],98765,OfficeAdd,12345,P12345,123
Любые мысли были бы оценены. Спасибо!
Попробуйте это, я предполагаю, что это решает ваш вопрос –
спасибо! Это то, что я ищу. Я исправлю, что он переходит в цикл для каждого ClusterID и затем заполняет поля, когда они не являются NULL? – mtryingtocode
Кроме того, чтобы добавить какое-то усложнение в цикле, скажем, для поля адреса, адрес строки 1 не является нулевым, а почтовый - нулевым, то адрес строки 2 и почтовый индекс не являются нулевыми. Как добавить условие, чтобы я не принимал почтовый код во второй строке? Поскольку, если я получаю почтовый код в строке 2, он дает мне неправильную информацию уже в сочетании с адресом строки 1. – mtryingtocode