Filtrar cpfs duplicados Chave primaria auto increment id_pessoa

04/11/2015

0

Boa tarde, Prezados.

Tenho a seguinte situação.


Existe uma tabela que possuí diversas informações e nela preciso filtrar todos os registros com o mesmo cpj/cnpj e que estejam com id_pessoa diferente.

O problema, acredito eu, que no passado não existia uma trava que bloqueava a inserção de pessoa com o mesmo cpf.

Exemplo:


cpf/cnpj NOME ID_PESSOA
07998414000538 EMPRESA1 LTDA-EPP 173435
07998414000538 EMPRESA1 LTDA-EPP 173438
025737682435 LUIZ HENRIQUE 40025
025737682124 MARCOS AJ 22551
025737682124 MARCOS AJ 22551
025737682124 MARCOS AJ 22551
025737682124 MARCOS AJ 00214
025737682124 MARCOS AJ 24457
J Agripino

J Agripino

Responder

Posts

04/11/2015

Fernando Vicari

Boa noite Jamilton

Não sei se o SQLServer tem a opção de você utilizar a clausula having.

Se tiver você pode fazer algo assim:

Select ID, NOME, CPF
  from tabela_pessoa
where CPF in (select cpf
                            from (select cpf, count(*)
                                         from tabela_pessoa
                                      group by cpf
                                    having count(*) > 1))


No oracle isso iria funcionar que é um espetáculo.
Responder

04/11/2015

Marcos P

Uma alternativa no Sql Server é agrupar a partir de uma temporária...

select cpf_cnpj
into #TMP
from pessoas
group by cpf_cnpj, id_pessoa

select cpf_cnpj, count(1) as Repeticoes
from #TMP
group by cpf_cnpj
having count(1) > 1

drop table #TMP
Responder

04/11/2015

Marcos P

ou um INNER JOIN da tabela com ela mesmo...

select distinct p1.cpf_cnpj 
from pessoas p1 inner join pessoas p2 on (p1.cpf_cnpj = p2.cpf_cnpj and p1.id_pessoa <> p2.id_pessoa)
Responder

05/11/2015

Marcos P

E aí ?

Resolveu ?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar