Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2015
jdgszorro jdgszorro is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 3
Poder: 0
jdgszorro Va por buen camino
Insert con subqueries

Hola a todos,

normalmente he utilizado Oracle y estoy desarollando una aplicación con Firebird ahora y me encuntro con un problema que no se como solventar de forma óptima.

En Oracle puedo hacer perfectamente esto:

Insert into Tabla (select max(codigo)+1 from tabla2, 'Prueba',select codigo from tabla3,......

Pero en FIREBIRD no hay manera de hacer o no se como hacer estas inserciones con subqueries integradas.

Si alguien me puede ayudar se lo agradecería.

Saludos.
Responder Con Cita
  #2  
Antiguo 21-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jdgszorro,

¡Bienvenido al Club Delphi!

Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi.

¡Gracias por tu cooperación!

Saludos,

Nelson.
Responder Con Cita
  #3  
Antiguo 21-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jdgszorro,

Cita:
Empezado por jdgszorro
...en Firebird...no se como hacer estas inserciones con subqueries integradas...


Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
  #4  
Antiguo 21-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jdgszorro.
Cita:
Empezado por jdgszorro Ver Mensaje
...
En Oracle puedo hacer perfectamente esto:

Insert into Tabla (select max(codigo)+1 from tabla2, 'Prueba',select codigo from tabla3,......

Pero en FIREBIRD no hay manera de hacer o no se como hacer estas inserciones con subqueries integradas.
La sintáxis para hacer lo que buscas en Firebird:
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3, ...)
VALUES((SELECT MAX(ID) FROM TABLA2),
       (SELECT CAMPOX FROM TABLA3 WHERE ID = :PID1),
       (SELECT CAMPOY FROM TABLA4 WHERE ID = :PID2),
       ...)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 22-03-2015
jdgszorro jdgszorro is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 3
Poder: 0
jdgszorro Va por buen camino
Muchas gracias voy a probar ahora mismo.
Responder Con Cita
  #6  
Antiguo 22-03-2015
jdgszorro jdgszorro is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 3
Poder: 0
jdgszorro Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola jdgszorro.

La sintáxis para hacer lo que buscas en Firebird:
Código SQL [-]
INSERT INTO TABLA1 (CAMPO1, CAMPO2, CAMPO3, ...)
VALUES((SELECT MAX(ID) FROM TABLA2),
       (SELECT CAMPOX FROM TABLA3 WHERE ID = :PID1),
       (SELECT CAMPOY FROM TABLA4 WHERE ID = :PID2),
       ...)

Saludos
Funcionó perfecto, me faltaban los paréntesis para delimitar la subquery, estos son los vicios de ORACLE.

Muchas gracias de nuevo.
Responder Con Cita
  #7  
Antiguo 24-03-2015
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
También puede hacerse así:
Código SQL [-]
Insert into Tabla 
Select (select max(codigo)+1 from tabla2), 'Prueba', codigo from tabla3
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insert into jerosol SQL 21 14-03-2007 19:58:40
Subqueries que no van en el 'where' gluglu SQL 1 29-06-2006 02:51:52
insert into Nelly SQL 3 14-10-2005 17:54:00
Insert me cierra otro Insert motrildelphi Conexión con bases de datos 0 05-05-2005 12:20:27
Insert Con Ibx AGAG4 Conexión con bases de datos 8 09-09-2004 20:29:15


La franja horaria es GMT +2. Ahora son las 16:26:17.


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