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

combinar dos registros de una tabla.

Estas en el tema de combinar dos registros de una tabla. en el foro de SQL Server en Foros del Web. Saludos cordiales al foro. Tengo una TABLA de la cual tengo registros repetidos, del tipo: ID NOMBRE DIRECCION TELEFONO 15 ALFONSO NULL NULL 94 ALFONSO ...
  #1 (permalink)  
Antiguo 26/04/2012, 15:51
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta combinar dos registros de una tabla.

Saludos cordiales al foro.

Tengo una TABLA de la cual tengo registros repetidos, del tipo:


ID NOMBRE DIRECCION TELEFONO
15 ALFONSO NULL NULL
94 ALFONSO CONOCIDA 555656565


LA INTENCION ES QUE LA INFORMACION DEL ID=94 SE PASE AL ID=15 Y EL ID=15 SE ELIMINE.

GRACIAS DE ANTEMANO.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #2 (permalink)  
Antiguo 26/04/2012, 16:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: combinar dos registros de una tabla.

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. nombre VARCHAR(20),
  5. direccion VARCHAR(20),
  6. telefono VARCHAR(20)
  7. )
  8.  
  9. INSERT INTO #temp VALUES (15,'Alfonso',NULL,NULL)
  10. INSERT INTO #temp VALUES (94,'Alfonso','conocida','55555')
  11.  
  12. SELECT * FROM(
  13. SELECT t1.id,
  14. t1.nombre,isnull(t1.direccion,t2.direccion) dir,isnull(t1.telefono,t2.telefono) tel
  15. FROM #temp AS t1
  16. RIGHT JOIN #temp AS t2 ON (t1.nombre=t2.nombre)
  17.  
  18. ) AS t1 WHERE dir IS NOT NULL AND tel IS NOT NULL GROUP BY id,nombre,dir,tel

No se si esto es lo que quieres.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 26/04/2012, 16:33
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: combinar dos registros de una tabla.

Gracias por tu respuesta, me explico un poco mejor sobre lo que necesito lograr:

EN la TABLA "Autores" tengo 1562 registros, dentro de los cuales hay repetidos, me refiero a que el autor al darse de alta en la pagina web se equivoco en algun campo (p.e. en donde debe de meter su telefono metio este 5565656) y resulta que como se equivoco se le hace facil meterse y volver a registrarse para meter bien su numero de telefono (se que para esto debo crear un modulo en la pagina para modificar el registro original y evitar que lo vuelvan a registar si se equivocan en algo, eso es otro tema).

Como ya se registro dos veces el mismo autor quiero que la informacion del segundo registro se combine con la del primer registro y el segundo registro eliminarlo.

Espero haberme explicado, gracias de antemano.
__________________
"La adulación es una moneda que empobrece al que la recibe"
  #4 (permalink)  
Antiguo 27/04/2012, 08:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: combinar dos registros de una tabla.

U_U no pues eso es mas sencillo primero sacas los registros repetidos(con un row number o con un having count) despues revisas a cuales de estos les faltan datos, podria ser con un isnull checar si esta en blanco etc y el registro que tenga faltantes lo eliminas..

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 27/04/2012, 12:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: combinar dos registros de una tabla.

Y lo mas importante, creo yo, es DEFINIR sobre que COLUMNAS se define la DUPLICIDAD.
__________________
MCTS Isaias Islas

Etiquetas: combinar, registro, registros, tabla
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




La zona horaria es GMT -6. Ahora son las 10:38.