Ir para conteúdo

Arquivado

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

Vitor Bueno

Como trazer apenas dados iguais.

Recommended Posts

Bom dia pessoal,

Estou com um duvida, no banco de dados, tenho dados duplicados, tanto como endereço, nome , rg e cpf,

eu conheço o comando having, usei esse :

SELECT cpf, nome, rg, count( * )
FROM clientes
GROUP BY nome
HAVING count( * ) >1

 

eu queria saber outra função ou maneira de retornar todos os registro sem agrupar, porque no nome tudo bem pode agrupar, mas rg, cpf e endereço não pode porque preciso do nome de todos os clientes que tem rg, cpf ou endereço igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se é isto , mas ....

--cpf duplicados
select *
from clientes
where cpf in (SELECT cpf, count( * )
              FROM clientes
              GROUP BY nome
              HAVING count( * ) >1)
order by cpf,nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta complementar o seu GROUP BY.

 

GROUP BY nome, cpf, rg

HAVING COUNT( * ) > 1

Eu estou usando esse tipo de having com esse mesmo group, so que assim uma hora eu quero que venha todos os clientes que tem nome iguais, e com o group eles vão ficar junto, para nomes tudo bem e aceitavel, mas no cpf e rg eu preciso ver quais são os clientes não apenas um, porque com o group by cpf ou rg ele vai agrupar todos e so vai me retornar 1 .

 

Não sei se é isto , mas ....

--cpf duplicados
select *
from clientes
where cpf in (SELECT cpf, count( * )
              FROM clientes
              GROUP BY nome
              HAVING count( * ) >1)
order by cpf,nome

Fiz esse Select e o bando me deu essa mensagem:

 

#1241 - Operand should contain 1 column(s)

 

os dados estão salvos no phpmyadmin

Compartilhar este post


Link para o post
Compartilhar em outros sites

#1241 - Operand should contain 1 column(s)

operador deve conter apenas 1 coluna ...

 

tente

--cpf duplicados
select *
from clientes
where cpf in (SELECT cpf 
              FROM clientes
              GROUP BY nome
              HAVING count( * ) >1)
order by cpf,nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

#1241 - Operand should contain 1 column(s)

operador deve conter apenas 1 coluna ...

 

tente

--cpf duplicados
select *
from clientes
where cpf in (SELECT cpf 
              FROM clientes
              GROUP BY nome
              HAVING count( * ) >1)
order by cpf,nome

 

 

Cara,VALEU.

 

Funcionou, muito obrigado

 

#1241 - Operand should contain 1 column(s)

operador deve conter apenas 1 coluna ...

 

tente

--cpf duplicados
select *
from clientes
where cpf in (SELECT cpf 
              FROM clientes
              GROUP BY nome
              HAVING count( * ) >1)
order by cpf,nome

 

 

Cara, VALEU

 

Funcionou, muito obrigado .

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.