Мне нужно иметь возможность выбрать отдельный «телефон» независимо от того, приходит телефон с работы или из дома. Все телефоны должны быть уникальными.
Этот запрос выдает дубликаты, когда один и тот же телефон находится на работе и дома в разных строках.
SELECT CASE WorkPhone
WHEN '' THEN
HomePhone
ELSE
WorkPhone
END AS Phone
,MAX(LastName)
,MAX(FirstName)
FROM TableA
WHERE (statusid = Inactive)
AND
(modifieddate > '11/11/2011')
AND
NOT EXISTS (SELECT Phone FROM TableB WHERE Phone = WorkPhone OR Phone = HomePhone)
AND
NOT EXISTS (
SELECT AreaCode + PhoneNumber FROM TableC
WHERE
(AreaCode = LEFT(WorkPhone,3) AND PhoneNumber = Substring(WorkPhone, 4, 7)
)
OR
(AreaCode = LEFT(HomePhone,3) AND PhoneNumber = Substring(HomePhone, 4, 7))
)
GROUP BY WorkPhone, HomePhone