Fórum Deletar Registros Duplicados #382066
23/07/2010
0
Pessoal tenho uma tabela com a extrutura abaixo:
Tabela: PACIENTES
COD - PRIMARY KEY
NOME
DATANASC
CARTAO
Minha tabela está com vários registros duplicados, preciso deletar os registros duplicados (os dados duplicados são o NOME e DATANASC), mas tem um porém, deixar no banco somente o campo CARTAO que possui o menor valor.
Lembrando que o meu banco de dados é Firebird, estou utilizando o Delphi 7 com DBExpress e ClientDataSet na minha aplicação.
Aguardo a ajuda.
Grato.
Lucas Souza
Curtir tópico
+ 0
Responder
Posts
26/07/2010
Emerson Nascimento
delete from pacientes
where cartao > (select min(p2.cartao) from pacientes p2
where p2.nome = pacientes.nome and p2.datanasc = pacientes.datanasc)
para verificar se o resultado será o esperado, faça um select antes:
select * from pacientes
where cartao > (select min(p2.cartao) from pacientes p2
where p2.nome = pacientes.nome and p2.datanasc = pacientes.datanasc)
where cartao > (select min(p2.cartao) from pacientes p2
where p2.nome = pacientes.nome and p2.datanasc = pacientes.datanasc)
para verificar se o resultado será o esperado, faça um select antes:
select * from pacientes
where cartao > (select min(p2.cartao) from pacientes p2
where p2.nome = pacientes.nome and p2.datanasc = pacientes.datanasc)
Responder
Gostei + 0
26/07/2010
Lucas Souza
Perfeito Emerson
Era isso mesmo que eu precisava, faço esse procedimento pelo IBExpert, funciona normalmente, como faço para colocar o mesmo select e delete no Delphi utilizando uma Progressbar?
Uso DBExpress, ClientDataSet com firebird.
GRato pelo ajuda!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)