Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Actualizar Registros duplicados

Estas en el tema de Actualizar Registros duplicados en el foro de SQL Server en Foros del Web. Hola!.. Tengo una tabla con registros duplicados puedo identificar cuales y cuantos hay y puedo eliminarlos.. El problema que tengo es que esta base de ...
  #1 (permalink)  
Antiguo 17/05/2011, 16:17
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 14 años, 2 meses
Puntos: 1
Pregunta Actualizar Registros duplicados

Hola!..

Tengo una tabla con registros duplicados puedo identificar cuales y cuantos hay y puedo eliminarlos..

El problema que tengo es que esta base de datos es de contactos y puedo tener datos que en el otro registro no tengo y viceversa.. ejemplo:

Clave, Nombre , Tel , Tel2 , Estado , Ciudad , Email
1 , Juan , 123 , 432 , , Zapopan ,
2 , Juan , 123 , , Jalisco , Zapopan , [email protected]

Quiero eliminar el registro 2... pero no quiero perder información que tiene que el registro uno no lo tiene como el estado y el e-mail.. ¿como puedo darle un update sobre el primer registro con los campos que son vacios y llenarlos con el segundo registro?

Para que quede de esta manera:

Clave, Nombre , Tel , Tel2 , Estado , Ciudad , Email
1 , Juan , 123 , 432 , Jalisco , Zapopan , [email protected]


Espero me haya dado a entender y me puedan ayudar... gracias
  #2 (permalink)  
Antiguo 18/05/2011, 08:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Actualizar Registros duplicados

Hola Inicia:

Vamos por partes, en primer lugar, me gustaría que nos comentaras qué criterio vas a considerar para decir que dos registros están duplicados, ¿sólo el nombre? porque si es así hay un problema: ¿qué pasaría por ejemplo con un caso como este?

Código:
Clave|Nombre|Tel|Tel2|Estado|Ciudad|Email
---------------------------------------------------------
1|Juan|123|432|NULL|Zapopan|NULL
2|Juan|NULL|NULL|Jalisco|Guadalajara|[email protected]
3|Juan|789|NULL|Distrito Federal|Miguel Hidalgo|[email protected]
4|Juan|654|NULL|Veracruz|Córdoba|NULL
5|Juan|789|NULL|Distrito Federal|Miguel Hidalgo|[email protected]
Los cuatro primeros registros tienen el mismo nombre, pero todos corresponden a personas diferentes, pues todos tienen una ciudad diferente.

Otro caso que tienes qué considerar es por ejemplo el caso de los registros 3 y 5. aparentemente los dos corresponderían a la misma persona, pero en el caso del correo observa que es deferente, entonces, ¿cuál de los dos es el que debe permanecer?

Como verás son varias las consideraciones que hay que tomar en cuenta, de acuerdo a la complejidad de estas puede ser que sea más conveniente realizar un procedimiento almacenado en lugar de una simple consulta.

Saludos y espero tus comentarios
Leo
  #3 (permalink)  
Antiguo 18/05/2011, 09:14
Avatar de cesarcaes  
Fecha de Ingreso: marzo-2010
Mensajes: 57
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Actualizar Registros duplicados

hola inicia,

Mi recomendacion es que crees un campo a la tabla que sea unico para la persona. que no sea el id de la tabla. la puedes considerar para ti como una clave.
por ejemplo cedula o numero de pasaporte. etc.
  #4 (permalink)  
Antiguo 18/05/2011, 14:31
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Actualizar Registros duplicados

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola Inicia:

Vamos por partes, en primer lugar, me gustaría que nos comentaras qué criterio vas a considerar para decir que dos registros están duplicados, ¿sólo el nombre? porque si es así hay un problema: ¿qué pasaría por ejemplo con un caso como este?

Código:
Clave|Nombre|Tel|Tel2|Estado|Ciudad|Email
---------------------------------------------------------
1|Juan|123|432|NULL|Zapopan|NULL
2|Juan|NULL|NULL|Jalisco|Guadalajara|[email protected]
3|Juan|789|NULL|Distrito Federal|Miguel Hidalgo|[email protected]
4|Juan|654|NULL|Veracruz|Córdoba|NULL
5|Juan|789|NULL|Distrito Federal|Miguel Hidalgo|[email protected]
Los cuatro primeros registros tienen el mismo nombre, pero todos corresponden a personas diferentes, pues todos tienen una ciudad diferente.

Otro caso que tienes qué considerar es por ejemplo el caso de los registros 3 y 5. aparentemente los dos corresponderían a la misma persona, pero en el caso del correo observa que es deferente, entonces, ¿cuál de los dos es el que debe permanecer?

Como verás son varias las consideraciones que hay que tomar en cuenta, de acuerdo a la complejidad de estas puede ser que sea más conveniente realizar un procedimiento almacenado en lugar de una simple consulta.

Saludos y espero tus comentarios
Leo

Muy buena observación!! Pero los nombres son razones sociales por lo cual varian demasiado, no puedo tomar el siguiente campo q es la dirección ya que pueden existir dos sucursales.. con el misma razón social y diferente calle, por lo cual solo requiero el telefono que el otro tiene me entiendes?.... igual lo que puedo tomar es el RFC pero resulta que no todos los datos que tengo lo tienen..!
  #5 (permalink)  
Antiguo 18/05/2011, 16:49
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Actualizar Registros duplicados

Regrese a lo básico y trate de hacerlo así:

update basecva
set RFC =(select b.RFC
from basecva b where a.razons=b.razons and b.RFC <>'')
from basecva a where a.razons in ('FRANCISCO JAVIER CAMARGO CASILLAS',
'JOSE ANASTACIO ESQUIVEL SALAS','JOSE ANTONIO HERNANDEZ MARTINEZ')

funciona si solo tengo 2 registros... de cada razon social y cuando el dato es nulo.. pero si hay + registros marca error y además sería hacerlo campo por campo algúna idea??...

Etiquetas: duplicados, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:57.