Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
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
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #2  
Antiguo 17-06-2004
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 22
Osorio Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 17-06-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
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
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #4  
Antiguo 17-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 17-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Te falta un punto y coma al final de la sentencia update. (Justo antes del END que te está marcando el error).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 17-06-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
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
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:39:00.


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
Copyright 1996-2007 Club Delphi