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

como pasar datos de un campo a otro

Estas en el tema de como pasar datos de un campo a otro en el foro de Bases de Datos General en Foros del Web. Hola, tengo este problema que no puedo resolver, no encuentro por ningún lado informacion de esto, les explico Tengo estos campos con estos datos id ...
  #1 (permalink)  
Antiguo 03/06/2004, 14:31
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 22 años, 4 meses
Puntos: 0
como pasar datos de un campo a otro

Hola, tengo este problema que no puedo resolver, no encuentro por ningún lado informacion de esto, les explico
Tengo estos campos con estos datos

id /nombre / año

1 /Pedro / 2004
2 /Pedro / vacio
3 /Pedro / vacio


Lo que tengo que lograr es que me quede esto

id /nombre / año

1 /Pedro / 2004
2 /Pedro / 2004
3 /Pedro / 2004


que la informacion del año sea igual en todos los campos que tengan el mismo nombre.

No se como sería la sentencia SQL, me estoy volviendo loco.
Esto es sobre access
Espero una ayudita
Gracias

Última edición por mab; 03/06/2004 a las 14:33
  #2 (permalink)  
Antiguo 03/06/2004, 18:32
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 22 años, 4 meses
Puntos: 0
Me olvidaba de decir que son mas de 1000 registros, todos con digerentes id, asi que no puedo tomar como referencia los id.Sería al go asi

id /nombre / año

1 /Pedro / 2004
2 /Pedro / vacio
3 /Pedro / vacio
5 /juan / 1990
6 /juan / vacio
7 /juan / vacio
= /juan / vacio

etc... hasta 1000
  #3 (permalink)  
Antiguo 03/06/2004, 18:53
Avatar de mozka  
Fecha de Ingreso: junio-2004
Ubicación: México
Mensajes: 37
Antigüedad: 19 años, 11 meses
Puntos: 0
entonces toma como referencia el nombre...
  #4 (permalink)  
Antiguo 03/06/2004, 19:50
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 22 años, 4 meses
Puntos: 0
Si, justamente es eso lo que no me sale
No se como hacer ese update.
  #5 (permalink)  
Antiguo 04/06/2004, 01:39
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
y sólo tienes un dato de año con valor por nolmbre diferente, o hay más de uno
  #6 (permalink)  
Antiguo 04/06/2004, 06:38
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 22 años, 4 meses
Puntos: 0
No, hay mas de una fecha pero es la misma por cada nombrer y donde dice vacio , dice textualmente "vacio", osea nos podemos agarrar de ahi.

Última edición por mab; 04/06/2004 a las 06:45
  #7 (permalink)  
Antiguo 07/06/2004, 01:55
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
Fácil no parece, no... prueba con algo como esto, es lo más que se me ocurre un lunes a primera hora

UPDATE Tabla1 SET Tabla1.Año = Tabla2.Año FROM Tabla1 INNER JOIN Tabla1 Tabla2 ON Tabla1.Nombre = Tabla1.Nombre WHERE Tabla2.Año <> "vacio" AND Tabla1.Año = "Vacio"

Ya dirás que tal, un saludo
  #8 (permalink)  
Antiguo 07/06/2004, 07:11
mab
 
Fecha de Ingreso: enero-2002
Mensajes: 263
Antigüedad: 22 años, 4 meses
Puntos: 0
TERI, muchas gracias, es casi perfecto, creo que lo que fallaría es que tengo todo en una misma tabla por lo que debería crear un alias.
No te digo esto porque la tenga reclara, me pàsaron un codigo que ya adapté y funciona perfecto.
Sería asi:

UPDATE Tabla INNER JOIN Tabla AS Tabla_1 ON Tabla.Nombre = Tabla_1.Nombre SET Tabla.año = Tabla_1.año
WHERE Tabla.año = 'vacio' AND Tabla_1.año <> 'vacio';


Saludos
  #9 (permalink)  
Antiguo 07/06/2004, 07:54
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
Por la instrucción que pones usas Access, si es así, parece que lo tienes, yo te puse para SQL-Server, por qué??? supongo que un pinzamiento de alguna neurona SQLriana, en cualquier caso, yo te puse el alias "Tabla1 INNER JOIN Tabla Tabla2" es otra forma de hacer alias

Saludos
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 03:38.