Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

inforthiago

Comparação de colunas

Recommended Posts

Olá Pessoas !!!

 

Estou com uma dúvida que pra muito deve ser até facíl de se resolver, é a seguinte eu tenho uma tabela de pessoas físicas com 20.000 registros, eu gostaria de comparar as pessoas de telefones iguais + cep iguais + numeros iguais.

 

EX:

 

COD TEL NOME NUM CEP

1 22222222 CARLOS 10 22554020

50 22222222 MARIA 10 22554020

100 33330000 JOAO 15 22554020

 

No caso do exemplo pegaria os registros de codígo 1 e 50 pq eles tem TEL+CEP+NUM iguais. Gostaria de algumas dicas pra fazer essa query. Um abraço a todos e agradesso desde ja.

 

Thiago

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Amigo,

 

O Seu Problema me parece realmente simples.

Se você estiver precisando apenas quantificar quantos registros você tem repetido caso a caso é bem simples mesmo.

 

Vou lhe passar uma query:

 

COD TEL NOME NUM CEP

1 22222222 CARLOS 10 22554020

50 22222222 MARIA 10 22554020

100 33330000 JOAO 15 22554020

 

SELECT TEL, NUM, CEP, COUNT(*) FROM TABELA GROUP BY TEL, NUM, CEP

 

Pronto, com essa query, ele te dará o número de ocorrencias que tem o TEL, o NUM e o CEP iguais.

 

Espero ter Ajudado.

 

Obrigado

 

 

Marcos Venicio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda Marcos Venicio !!!

 

O que eu queria mesmo era separar da base todos os registros que tivesse TEL+NUMERO+CEP iguais, mas de tanto pençar acabei chegando ao resultado. Vou postar para ajudar alguma pessoa que tempa uma dúvida igual o similar a minha.

 

select * from [tabela]

where tel in (select distinct t.tel from [tabela] t

inner join (select tel, count(*) total from [tabela] group by tel

having count(*) > 1) taux on t.tel = taux.tel) and numero in (select distinct c.numero from [tabela] c

inner join (select numero, count(*) total from [tabela] group by numero

having count(*) > 1) caux on c.numero = caux.numero) and cep in (select distinct b.cep from [tabela] b

inner join (select cep, count(*) total from [tabela] group by cep

having count(*) > 1) baux on b.cep = baux.cep)

order by tel

 

Essa query que me salvou da minha dúvida. Espero poder ajudar mais alguma pessoa com essa Query.

 

Abs, Thiago Silva

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma outra forma...

 

select *

from tabela a

inner join (select tel, numero, cep from tabela group by tel, numero, cep having count(*) > 1) b

on a.tel = b.tel and a.numero = b.numero and a.cep = b.cep

order by tel, numero, cep;

 

Abs!

ska!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.