Удалите дубликаты в таблице. - PullRequest
0 голосов
/ 22 сентября 2011

Мне нужно иметь возможность выбрать отдельный «телефон» независимо от того, приходит телефон с работы или из дома. Все телефоны должны быть уникальными.

Этот запрос выдает дубликаты, когда один и тот же телефон находится на работе и дома в разных строках.

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

1 Ответ

2 голосов
/ 22 сентября 2011

Вы должны сгруппировать по:

CASE WorkPhone
        WHEN '' THEN 
            HomePhone
        ELSE 
            WorkPhone
        END

вместо группировки по WorkPhone, HomePhone

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...