Я хотел бы найти повторяющиеся строки в таблице на основе соответствия двум условиям.Первое условие, сопоставьте данные в поле LastName.Второе условие: сопоставьте только первые три символа данных в поле FirstName.
Например, следует выбрать следующие две строки:
LastName FirstName
Williams Robert
Williams Robbie
Я попытался построить решение RedFilter: Поиск дублирующихся строк в SQL Server , но возвращается 0 записей.Вот мой запрос;
SELECT a.ObjGUID, a.LastName, a.FirstName, a.EmailAddress, ac.duplicateCount
FROM [Users].[dbo].[Known_Dupes_4] a
INNER JOIN (
SELECT
LastName, FirstName, COUNT(*) AS duplicateCount
FROM [Users].[dbo].[Known_Dupes_4]
GROUP BY
LastName, FirstName
HAVING
COUNT(*) > 1
) ac ON (UPPER(a.LastName) = UPPER(LTRIM(RTRIM(ac.LastName))) AND LEFT (UPPER(LTRIM(RTRIM(a.FirstName))),3) LIKE LEFT (UPPER(LTRIM(RTRIM(ac.FirstName))),3))
ORDER BY
a.LastName, a.FirstName
Спасибо
обновлено - похоже, работает
SELECT a.EmployeeID, a.LastName, a.FirstName, a.EmailAddress, ac.duplicateCount
FROM [Users].[dbo].[Known_Dupes_4] a
INNER JOIN (
SELECT
LEFT(FirstName,3) as firstNameShort, COUNT(*) AS duplicateCount, LastName
FROM [Users].[dbo].[Known_Dupes_4]
GROUP BY
LastName, LEFT(FirstName,3)
HAVING
COUNT(*) > 1
) ac ON (a.LastName) = ac.LastName AND LEFT (a.FirstName,3) LIKE LEFT (ac.firstNameShort,3)
ORDER BY a.LastName, a.FirstName