Dúvida com sql em registros duplicados

27/10/2004

0

Saudações,
alguém poderia me ajudar neste sql? Tenho numa tabela alunos com registros duplicados (pagando o mesmo mês na mesma data com o mesmo valor). Gostaria de saber como faço para verificar quais são estes registros, seja utilizando um count junto com o nome e/ou outros dados ou seja puxando registro a registro. Tipo: João pagou R$ 100,00 pelo mês de Setembro no dia 20/09/2004 mas a tabela possui 3 registros idênticos. Como montar o sql pra puxar isso? Muito obrigado.

Obs: Os campos Matricula, Nome, Dt_pgto, Parcela são campos-chave. Eu preciso desta consulta para verificar as tabelas que ainda não foram chaveadas.


Elias Jr

Elias Jr

Responder

Posts

27/10/2004

Gandalf.nho

Faça algo nesse estilo:

SELECT Matricula, Nome, Dt_pgto, Parcela, COUNT(Matricula)
FROM nome_tabela
GROUP BY Matricula, Nome, Dt_pgto, Parcela
HAVING COUNT(Matricula) > 1

A cláusula HAVING no final serve para mostrar apenas os registros com mais de uma ocorrência na tabela.


Responder

27/10/2004

Elias Jr

Saudações amiga,
eu já tinha utilizado a cláusula Having e consegui um resultado quase perfeito (ele exibe o nome do aluno e o número de vezes numa única linha). Como faço pro resultado ser discriminado? Ou seja, mostrar as 3 linhas repetidas? Muito obrigado.


Responder

27/10/2004

Gandalf.nho

Talvez com uma subconsulta, mas não sei se o MySQL suporta isso. Eu normalmente resolveria isso com uma VIEW ou SP, mas no caso do MySQL não dá. Se você pretende usar isso apenas para ´desmontar´ a sua tabela, tente montar um programinha que compare os resultados da query com a tabela puxando um a um os dados repetidos.


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