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 05-09-2006
Avatar de JuanBCT
JuanBCT JuanBCT is offline
Miembro
 
Registrado: ago 2004
Ubicación: Campana, Argentina
Posts: 57
Poder: 21
JuanBCT Va por buen camino
Como hacer referencia a un query dentro de otro query?

Hola, que tal? Tengo un problema con un query, espero que me puedan ayudar. Antes de implementarla en mi programa, probé desde el Database Desktop (uso tablas Paradox) la siguiente sentencia sql:

Código SQL [-]
SELECT DISTINCT NUMERO_FG701, DESCRIPCION_FG701 FROM FG701             
INNER JOIN FG704              
ON (FG701.NUMERO_FG701=FG704.NUMERO_FG704)

Ahora, tengo que insertarla en mi aplicación pero con la tabla FG704 filtrada a través de otra sentencia sql, la cual me devuelve en un query1. Entonces armo el query2 de la siguiente manera...

Código Delphi [-]
with Relacion.Query2 do
  begin
    Active:=false;       
    sql.clear;
    sql.add ('SELECT DISTINCT NUMERO_FG701, DESCRIPCION_FG701 FROM FG701');        
    sql.add ('INNER JOIN query1');               
    sql.add ('ON (FG701.NUMERO_FG701=query1.NUMERO_FG704)');
    active:=true;       
  end;

... pero me devuelve un error, que la tabla query1 no existe. Román me explicó en este post como hacer referencia a una segunda tabla con otro alias, pero no encuentro forma de hacerlo con un query. ¿Alguien sabe como se hace?

Gracias y un saludo
Responder Con Cita
  #2  
Antiguo 05-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No puedes hacer esto. Una cosa es referirte a otra tabla u otra base de datos en la consulta, y otra referirte a una consulta, pues ésta no existe físicamente emn la bd. Pero lo único que tienes que hacer es agregar las condiciones del filtrado en la misma consulta:

Código SQL [-]
select distinct NUMERO_FG701, DESCRIPCION_FG701 FROM FG701             
inner join FG704
on (FG701.NUMERO_FG701=FG704.NUMERO_FG704)
where
  condiciones sobre los campos de FG704

// Saludos
Responder Con Cita
  #3  
Antiguo 05-09-2006
Avatar de JuanBCT
JuanBCT JuanBCT is offline
Miembro
 
Registrado: ago 2004
Ubicación: Campana, Argentina
Posts: 57
Poder: 21
JuanBCT Va por buen camino
Gracias Roman, anduvo muy bien. La verdad es que se me escapó, es mucho más simple de esta manera... aún si se pudiera hacer lo que yo quería originalmente.

Saludos!
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
Como hacer una consulta (Query) con dos DB? El_Raso Firebird e Interbase 8 30-01-2007 06:37:49
Como puedo hacer una consulta con un Query y que se actualize en el DBGrid olbeup SQL 7 01-08-2005 18:37:28
query dentro de query jonmendi SQL 3 29-07-2005 16:13:33
Como hacer un Query con dbf y Sql Leomar SQL 0 02-02-2005 15:28:52
como ejecutar un query haciendo referencia a una tabla que esta en red????? reggaealex SQL 2 20-01-2005 20:36:48


La franja horaria es GMT +2. Ahora son las 01:39:07.


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