PostgreSQL - Sentencia Update registro de dos tablas

 
Vista:

Sentencia Update registro de dos tablas

Publicado por lu (1 intervención) el 22/02/2011 13:21:43
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

RE:Sentencia Update registro de dos tablas

Publicado por Emanuel Calvo  (1 intervención) el 23/02/2011 16:47:43
el caso prueba:
portal=# CREATE TABLE tabla1 (pk int primary key, i int);
NOTICE: CREATE TABLE / PRIMARY KEY crearA¡ el A-ndice implA-cito A«tabla1_pkeyA
» para la tabla A«tabla1A»
CREATE TABLE
portal=# CREATE TABLE tabla2 (fk int references tabla1, e int);
CREATE TABLE
portal=# insert into tabla1 values(1,500),(2,5),(3,40);
INSERT 0 3
portal=# insert into tabla2 values(1,400),(2,8),(3,45);
INSERT 0 3

la consulta:
portal=# UPDATE tabla1 SET i = tabla2.e from tabla2 where tabla1.pk=tabla2.fk an
d tabla1.i< tabla2.e;

No deje de visitar nuestros servicios en www.helpame.com y de acceder a nuestras charlas gratuitas que se inician en el mes de Marzo. Las fechas estan disponible en nuestro Calendario.
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