Bom dia.
Precisei fazer um update para excluir registros duplicados.
Aparentemente deu certo, mas como não sou DBA queria saber se dá pra
melhorar a solução abaixo.
Levei em consideração os campos mais importantes (chaves candidatas ???)

delete from movciap where ROWID in
(
select  ROWID  from movciap x where codprod || vlitem || qtcont ||
punitcont || numnota  IN
(
select codprod || vlitem || qtcont || punitcont || numnota
from movciap
where 1=1
group by codprod || vlitem || qtcont || punitcont || numnota
having count(codprod || vlitem || qtcont || punitcont || numnota ) >1
)
and rowid = (select max(rowid) from movciap where numnota = x.numnota and
codprod = x.codprod and vlitem = x.vlitem and qtcont = x.qtcont and
punitcont = x.punitcont )
);


-- 

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br
(21) 6845-8592
  • [oracle_br] Excluir registro... Eduardo Perdomo panc...@gmail.com [oracle_br]

Responder a