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

Update de un registro asignando el resultado de una Select

Estas en el tema de Update de un registro asignando el resultado de una Select en el foro de Bases de Datos General en Foros del Web. Buenos días, veámos... tengo un par de tablas (llamémoslas t1 y t2) y en t1 tengo un campo que es igual (pero no linkado) a ...
  #1 (permalink)  
Antiguo 16/01/2007, 04:06
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Update de un registro asignando el resultado de una Select

Buenos días,

veámos... tengo un par de tablas (llamémoslas t1 y t2) y en t1 tengo un campo que es igual (pero no linkado) a otro campo de t2. Y lo que quiero hacer es, una vez actualizados esos campos en t2, realizar un update para que se actualicen en t1, algo de este estilo:

UPDATE T1 SET T1.campo1 = (SELECT TOP 1 T2.campo1 FROM T2,T1 WHERE T2.campo2 = T1.campo2);

¿Cómo lo veis? Aclarar que la consulta la estoy realizando en Access 2003. Me da error de "Operation must use an updateable query". Si quito la select del SET y pongo cualquier cadena la operación si funciona, pero yo quiero que me asigne el resultado de buscar el valor de campo1 cuando campo2 tiene el mismo valor en T1 y T2.

Sé que lo suyo sería que estén enlazadas, pero el responsable de la BD no lo hizo así en su momento y ahora poco más se puede hacer.

Gracias.
  #2 (permalink)  
Antiguo 16/01/2007, 09:57
 
Fecha de Ingreso: junio-2006
Mensajes: 87
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Update de un registro asignando el resultado de una Select

Con access no se si funcionará prueba con:

UPDATE T1 SET T1.campo1 = (SELECT TOP 1 T2.campo1 FROM T2 WHERE T2.campo2 = T1.campo2);
  #3 (permalink)  
Antiguo 16/01/2007, 11:13
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Update de un registro asignando el resultado de una Select

Que tal Josemari11.

Con la siguiente sentencia actualizas una tabla(t1.Campo1) con valores de otras(t2.Campo1), relacionadas por un campo (campo2).
Código:
UPDATE T1 SET campo1 = T2.campo1
FROM T1
      INNER JOIN T2 ON T1.campo2 = T2.campo2
Saludos y suerte!!
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 14:45.