Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   insertar datos en una tabla desde otra (https://www.clubdelphi.com/foros/showthread.php?t=11566)

Giniromero 17-06-2004 15:01:23

insertar datos en una tabla desde otra
 
Hola a tod@s,

Estoy trabajando con IB 7.

Necesito añadir un campo, CT1_new, en una tabla, T1 y guardar en él información.

La información que necesito guardar en dicho campo, depende de lo que tenga en el campo CT1_1 de la misma tabla T1. Lo que necesito es que busque el valor que hay en el campo CT1_1 dentro del campo CT2_1 de otra tabla T2, y lo que encuentre en el campo CT2_2, de ese mismo registro, que me lo guarde en el campo CT1_new de la tabla T1.

Esto es:

T1 ........................................... T2

CT1_1 --------------------------> CT2_1
CT1_new <------------------------ CT2_2


Lo he estado intentando hacer desde la propia base de datos, usando update pero parece que no me permite nombrar a dos tablas para poder hacer esa simple asignación.

¿Alguna idea?

Gracias,

Virginia

Osorio 17-06-2004 16:30:42

Con un procedimiento almacenado.

algo mas o menos asi:


declare variable mivar mitipodedatos


for select elcampo1 from tabla1
into mivar
do begin
update tabla2
set elcampo = :mivar
where (la condicion se cumple)
end

Giniromero 17-06-2004 17:03:36

Hola,

lo primero gracias por la ayuda.

He probado lo que me comentas, y este es el código que tengo:

Código SQL [-]
CREATE PROCEDURE PRO_LIBROS 
AS
DECLARE VARIABLE VTITULO VARCHAR(50);
begin
  /* Procedure Text */
FOR
    select LIBROS.titulo, libros.codigo  FROM libros
    into
     :VTITULO
DO BEGIN
   update ecolib
   set ecolib.concepto = :VTITULO
   where libros.codigo=ecolib.isbn

END

end

pero me dice que:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 15, char -1.
END.

y me devuelve un: parsing error!

Alguna idea de cual es el problema?

Gracias

Virginia

jachguate 17-06-2004 17:53:37

No se si entendí bien, proba esta sentencia, a ver cómo te va:

Código SQL [-]
Update t1
   set ct1_new = (Select ct2_2
                    from t2
                   where t2.ct2_1 = t1.ct1_1);

Hasta luego.

;)

guillotmarc 17-06-2004 18:34:37

Te falta un punto y coma al final de la sentencia update. (Justo antes del END que te está marcando el error).

Saludos.

Giniromero 17-06-2004 19:37:16

Hola a todos,

Si, bueno, glup, las prisas, .... ejen, ....En cualquier caso ya me he dado cuenta y lo he corregido y ha funcionado perfectamente, muchas gracias a todos por la ayuda.

Saludos,

Virginia


La franja horaria es GMT +2. Ahora son las 12:44:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi