Ir para conteúdo

Arquivado

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

famomonteiro

apagar duplicatas comparando duas tabelas

Recommended Posts

Olá galera, bom dia!

 

Estou com o seguinte problema:

 

Tenho duas tabelas, uma chamada cad2014 e outra cadgeral. Consigo achar as duplicatas que estão em cadgeral, mas não consigo excluir. Gostaria que alguém me ajudasse. Tenho que comparar as duas tabelas e encontrar o registros que estão em cad2014 e cadgeral e apagá-los no cadgeral. Alguém tem alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tenho que comparar as duas tabelas e encontrar o registros que estão em cad2014 e cadgeral e apagá-los no cadgeral

 

 

Sem maiores detalhes creio que esta ideia básica resolva.

 

Faça uma salva antes de tentar rodar isto.

delete
from cadgeral
where exists (select null --testa se é duplicidade (chave e campos)
              from cad2014
              where cad2014.chave = cadgeral.chave
              and    cad2014.campo1 = cadgeral.campo1
              and    cad2014.campo2 = cadgeral.campo2
              ...
              and    cad2014.campon = cadgeral.campon)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera, bom dia!

 

Estou com o seguinte problema:

 

Tenho duas tabelas, uma chamada cad2014 e outra cadgeral. Consigo achar as duplicatas que estão em cadgeral, mas não consigo excluir. Gostaria que alguém me ajudasse. Tenho que comparar as duas tabelas e encontrar o registros que estão em cad2014 e cadgeral e apagá-los no cadgeral. Alguém tem alguma idéia?

Motta, não funcionou. Eu testei o seguinte comando abaixo, mas deu o erro: Não foi possível excluir itens das tabelas especificadas:

DELETE CADGERAL.*

FROM CAD2014 INNER JOIN CADGERAL ON (CAD2014.NOME=CADGERAL.NOME) AND (CAD2014.ENDERECO=CADGERAL.ENDERECO);

 

Eu consigo consultar todas as duplicatas que se encontram no cadgeral, mas dá erro na deleção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro de u ?

 

Tentou o comando com "not exists" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, não funcionou. Eu testei o seguinte comando abaixo, mas deu o erro: Não foi possível excluir itens das tabelas especificadas:

DELETE CADGERAL.*

FROM CAD2014 INNER JOIN CADGERAL ON (CAD2014.NOME=CADGERAL.NOME) AND (CAD2014.ENDERECO=CADGERAL.ENDERECO);

 

Eu consigo consultar todas as duplicatas que se encontram no cadgeral, mas dá erro na deleção.

erro: Não foi possível excluir itens das tabelas especificadas:

Não tentei com not exists.

Compartilhar este post


Link para o post
Compartilhar em outros sites
delete
from cadgeral
where exists (select null --testa se é duplicidade (chave e campos)
              from cad2014
              where CAD2014.NOME=CADGERAL.NOME 
              AND  CAD2014.ENDERECO=CADGERAL.ENDERECO)

Seria isto , mas faça antes numa base de testes e na produção faça uma salva antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, valeu pela ajuda, mas não conseguir resolver com sua sugestão. Conseguir a solução através do comando:

DELETE * FROM CAD2014 WHERE NOME IN (SELECT NOME FROM CADGERAL) AND ENDERECO IN (SELECT ENDERECO FROM CADGERAL);

 

Grato!

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.