Dos registros duplicados

Tengo registros duplicados, pero con diferente código de cliente. Quisiera rellenar el primer registros con datos del segundo ya que ese esta mas completo, para después eliminarlo. Ejemplo:

cod_cliente nombre teléfono

40A01 gustavo

41A01 gustavo 99911110000

40G02 eva mendez
41G02 eva mendez 08003221111

1 respuesta

Respuesta
1

Como no se que base de datos utilizas, no te puedo dar una solución especifica, para ello, pero si te puedo dar alguna pista.

Entiendo, que te quieres quedar con los registros con códigos de cliente más bajos rellenando con los códigos de clientes más altos y posteriormente borrar los registros más modernos.

Yo realizaría lo siguiente:

1- Crear una tabla temporal en la que metería los registros que después quieras borrar.

2- Actualizaría la información de los registros, que faltara información

3- Si hay alguna tabla, que reciba la clave del cliente, tendrás que actualizarla a la clave, que quieras mantener

4- Borrar de la tabla cliente los registros, que estaban en la tabla teporal

5- Borrar tabla temporal

Entre paso y paso me aseguraría de que se ha realizado correctamente.

Para el borrado del paso 4, propongo una forma de borrar duplicados haciendo referencia a la temporal, aunque hay otra forma de hacerlo:

DELETE FROM clientes
 WHERE cod_cliente not in
 (SELECT MIN(cod_cliente)
FROM tabla
 GROUP BY nombre, telefono);

Como pongo en el artículo "Eliminación de registros duplicados en Oracle"

Espero, que te haya ayudado.

Un saludo desde mundoDB, blog de Oracle

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas