ayuda, uso de UPDATE para actualización complicada

david
25 de Febrero del 2005
Hola y gracias de antemano. Vamos al grano:
Dos tablas, T1 y T2. Ambas tienen una columna llamada referencia. En T2 hay algunas referencias que son iguales que en T1. Además estas tablas tienen una columna con el pvp. Pero las refrencias que son comunes entre T1 y T2 tienen diferente pvp. En resumen, quiero actualizar los pvp de T1 con el pvp de T2, pero solamente con las referencias que coinciden.

Lo que he probado en visual fox pro es lo siguiente:

UPDATE T1 SET pvp=T2.pvp WHERE T1.referencia=(select referencia from T2 WHERE T2.referencia=T1.referencia)

ESto lo que me hace es cambiar todos los pvp de T1 por el valor del pvp de T2 de la primera referencia en T2 que coincida en T1

Isa? Islas
25 de Febrero del 2005
UPDATE T1 SET PVP = X.pvp
FROM T1 JOIN (SELECT REFERENCIA,PVP FROM T2)
ON T1.REFERENCIA = X.REFERENCIA

Isa? Islas
25 de Febrero del 2005
Me falto una "AS X"

UPDATE T1 SET PVP = X.pvp
FROM T1 JOIN (SELECT REFERENCIA,PVP FROM T2) AS X
ON T1.REFERENCIA = X.REFERENCIA

david
25 de Febrero del 2005
Gracias, Isaías, pero no funciona. Me da error. No hara falta un where por algún lado?? Seguire intentandolo. Gracias