Deletar registros duplicados com Select

Delphi

06/09/2006

Caros amigos,

Gostaria de saber como deleto registros duplicados numa tabela, por exemplo: Tenho num cadastro de clientes tres registros duplicados, onde o nome do cliente seja: ANTONIO DA SILVA CARVALHO, pois bem, gostaria de deletar dois registros com esse mesmo nome deixando apenas um utilizando uma select.

Grato,

Alcantarus.


Alcantarus

Alcantarus

Curtidas 0

Respostas

Aasn

Aasn

06/09/2006

Caro Alcantarus,

Delete from TABELA1 A 
Where (Select count(B.NOME) 
       From TABELA1 B 
       Where B.NOME = A.NOME) > 1 


[]´s
AASN


GOSTEI 0
Motta

Motta

06/09/2006

Creio não ter como fazer via select.

Tem de fazer um programa para isto.


GOSTEI 0
Aasn

Aasn

06/09/2006

Caros colegas,

Creio não ter como fazer via select. Tem de fazer um programa para isto.


Discordo do Motta, o select acima faz uma varredura na tabela e deleta todos os registros com nomes duplicados (deixando apenas um de cada).

Pode testar e ver o resultado!

[]´s
AASN


GOSTEI 0
Motta

Motta

06/09/2006

ok


GOSTEI 0
Motta

Motta

06/09/2006

ok


GOSTEI 0
Alcantarus

Alcantarus

06/09/2006

Caros amigos, agradeco pela disposicao, porem, nenhum dos codigos abaixo funcionaram.

Delete from Rec A Where (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1
Delete from Rec A Where Numnot (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1
Delete from Rec A Where Numnot in (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot > 1 )
Delete from Rec A Where Numnot in (Select count(B.Numnot) From Rec B Where B.Numnot = A.Numnot) > 1


O que eu gostaria, é que numa Tabela de Recebimentos, estao duplicados os Numeros da Notas, Parcelas, SubParcelas, Valores, etc... duplicaram todos os registros, entao, gostaria de exclui-los, deixando SOMENTE um registro no banco.

Grato de suas atencoes...

Alcantarus.


GOSTEI 0
POSTAR