Я пытаюсь пометить дубликаты записей, однако я неправильно переназначил их, и не знаю почему.
Данные:
= FirstName | LastName | Company | Group | Status | ID
x | x | x | NULL | NULL | 1
x | x | x | NULL | NULL | 2
Затем я запускаю этот запрос, чтобы найти совпадения в FirstName, LastName, Company и присоединяю его к основной таблице, чтобы пометить записи:
with d as (
select ID, FirstName, LAstName, Company, row_number() over (partition by FirstName,LastName, Company order by FirstName,LastName, Company) as nr
from [dbo].xx)
Update b
set Status = 'S'
, Group = d.DQ_ID
from xx as b inner join d on
b.FirstName = d.FirstName and
b.LastNAme = d.LastName and
b.Company = d.Company
where d.nr = 1
И затем обновить основную записьс P
Update b
set Status = 'P'
from xx as b
where b.ID = b.Group
GO
Что я ожидаю:
= FirstName | LastName | Company | Group | Status | ID
x | x | x | 1 | P | 1
x | x | x | 1 | S | 2
Что я получу:
= FirstName | LastName | Company | Group | Status | ID
x | x | x | 2 | S | 1
x | x | x | 1 | S | 2
Я работаю над 1М записями - и это случается только с некоторыми из них!