Sv Community El Salvador

Soporte y Tecnología => Programación => FOX => Mensaje iniciado por: MOISES en febrero 20, 2008, 06:38:13 pm

Título: UPDATE UTILIZANDO DOS TABLAS VISUAL FOX
Publicado por: MOISES en febrero 20, 2008, 06:38:13 pm
necesito de su ayuda con este caso,

necesito actualizar un saldo inicial que se encuentra en la tabla t1 con un saldo final que se encuentra en la tabla t2, las dos posee la misma llave para poder relacionarlas, pero como seria el ULDATE.

muchas gracias.. :sur:
Título: Re: UPDATE UTILIZANDO DOS TABLAS VISUAL FOX
Publicado por: NightOwl en febrero 20, 2008, 07:35:42 pm
aca te dejo algo espero te sirva

Paso utilizando codificacion propia de fox
SELEC A
USE ubicacion\t2 ORDE campollave
SELEC B
USE ubicacion\t1
SELECT B
SET RELA TO campollave INTO A

selec b
go top
repla all saldoinicial with a->saldofinal   


Nota: Lo que se pretende es que al seleccionar un registro de la t1 se ubique el cursor en el registro de la t2 cuyo campollave se el mismo para ambas tablas, para que te des cuenta de dicha actualizacion dale un browse para que te fijes que se hace dicha seleccion. Eje.
sele b
browse
sele a
browse

le das click a la tabla "t1", y veras que se ubica el cursor en la tabla "t2" donde el campollave se igual para ambas tablas,

espero te sirva, hay mas de un camino para realizar lo que tu quieres, cualquier cosa estoy a la orden
Título: Re: UPDATE UTILIZANDO DOS TABLAS VISUAL FOX
Publicado por: MOISES en febrero 20, 2008, 08:26:46 pm
Gracias ...   :thumbsup: y con UPDATE como se podra realizar..
Título: Re: UPDATE UTILIZANDO DOS TABLAS VISUAL FOX
Publicado por: NightOwl en febrero 20, 2008, 08:52:19 pm
Gracias ...   :thumbsup: y con UPDATE como se podra realizar..

UPDATE t1 
SET saldoinicial = ( SELECT b.saldofinal
                           FROM t1 a,t2 b
                           WHERE a.campollave=b.campollave)  <- ojo asegurate que  la consulta solo debe regresar un valor
WHERE EXISTS
  ( SELECT b.saldofinal
     FROM t1 a,t2 b
     WHERE a.campollave=b.campollave)


otro forma

UPDATE T1  SET
  saldoinicial =  A.saldofinal
 FROM  T2 A INNER JOIN T1 B ON A.campollave = B.campollave