SQL - Sentencia Update , registros en dos tablas

 
Vista:

Sentencia Update , registros en dos tablas

Publicado por lu (1 intervención) el 22/02/2011 13:23:07
Hola buenas, tengo el siguiente escenario:

Tabla1 ->campoA
Tabla2->campoB

La idea es aculizar los registros de tabla1.campoA en funcion de si el valor del campoA es mayor que el del tabla2.campoB, con el valor del campoB, es decir si tabla1.campo=100 y tabla2.campoB=50 , entonces quiero actualizar el valor del tabla1.campoA=50
(si tabla1.campoA > tabla2.campoB=50 actualiza tabla1.campoA=tabla2.campo.)

Supongo que tengo que hacer una sentencia UPDATE en la Tabla1, comparando
el valor del campoB de la tabla2 pero no tengo muy claro como hacerlo.
Estoy probando con la sentencia :

UPDATE esquema.tabla1
SET campoA = esquema.tabla2.campoB
from esquema.tabla2
where esquema.tabla2.campoB < campoA

Pero no la doy realizado correctamente:
Estoy trabajando con el SGDB postgres postgresql-8.4 y pgadmin para las consultas.
Un saludo y muchas gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Sentencia Update , registros en dos tablas

Publicado por Cesar Cuncanchun (14 intervenciones) el 09/03/2011 18:06:12
Tengo esto

select * from #Tabla1
C_ORIGEN C_DESTINO V_ORIGEN V_DESTINO
----------- ----------- ----------- -----------
1 2 500 800
3 1 200 300


select * from #Tabla2
C_ORIGEN C_DESTINO V_ORIGEN V_DESTINO
----------- ----------- ----------- -----------
1 1 500 300



ahora hago lo siguiente:

update #Tabla2
set #Tabla2.V_DESTINO= #Tabla1.V_DESTINO
from #Tabla2, #Tabla1
where #Tabla2.C_ORIGEN=#Tabla1.C_ORIGEN and
#Tabla2.V_DESTINO<#Tabla1.V_DESTINO

y luego compruebo:

select * from #Tabla1


C_ORIGEN C_DESTINO V_ORIGEN V_DESTINO
----------- ----------- ----------- -----------
1 2 500 800
3 1 200 300

select * from #Tabla2
C_ORIGEN C_DESTINO V_ORIGEN V_DESTINO
----------- ----------- ----------- -----------
1 1 500 800

veo que me ha actualizado el V_DESTINO de la tabla 2 si el valor de la tabla 1 era mayor. Es eso lo que necesitas?

debes manejar bien las llaves, veo que en tu sentencia no manejas las llaves.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar