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 14-09-2007
eldiegofg eldiegofg is offline
Miembro
 
Registrado: mar 2007
Ubicación: Colón - Entre Ríos
Posts: 54
Poder: 18
eldiegofg Va por buen camino
consulta a un query en vez de a una tabla

Hola gente, hay alguna forma de hacer un query a un query que esta en memoria?? o sea, hacer un select * from query1 o algo similar?
Responder Con Cita
  #2  
Antiguo 14-09-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Para poderte ayudar más efectivamente, podrias comentarnos cuál es la razón por la que quieres hacer eso? (Pueden existir soluciones alternativas), y otra más es comentarnos la base de datos que utilizas.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 14-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si ya lo tienes en memoria que yo sepa no.
No se si utilizando TClientDataSet tendrás opciones para filtrar y demás.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 14-09-2007
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Si ya lo tienes en memoria y lo que deseas es obtener ciertos registros, entonces aplicale un filtro y asunto resuelto.

Saludos.
Responder Con Cita
  #5  
Antiguo 15-09-2007
eldiegofg eldiegofg is offline
Miembro
 
Registrado: mar 2007
Ubicación: Colón - Entre Ríos
Posts: 54
Poder: 18
eldiegofg Va por buen camino
Hola, gracias por su atencion. Paso a explicar mas detalladamente el tema.

Estoy queriendo ejecutar una consulta que mi base de datos no soporta (no se por que, pero bueno...). Cuando quiero abrirla me da un error y la sintaxis esta bien.

Código SQL [-]
SELECT DISTINCT N_HAB FROM HABITACIONES WHERE N_HAB NOT IN((SELECT NHABITACION FROM RESERVAS WHERE FECHA BETWEEN :FI AND :FF) UNION (SELECT NHABITACION FROM ESTADIAS WHERE FECHA BETWEEN :FI AND :FF))
El error que tira es:"Invalid use of keyword, Token: (SELECT"Alternativamente, para hacerlo funcionar de alguna forma, queria hacer una consulta en dos partes (o sea, dos consultas). LA primera haciendo la UNION entre Reservas y Estadias y luego desde otra consulta seleccionar los datos con el NOT IN.
Es por eso que hacia la consulta, me podran ayudar?
Responder Con Cita
  #6  
Antiguo 15-09-2007
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Tengo entendido que es posible crear una tabla virtual, y luego hacerle cualquier consulta pero no tengo los códigos, pero si no estoy mal en la Cara Oculta de Delphi lo encuentras.
Responder Con Cita
  #7  
Antiguo 15-09-2007
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 20
gmontes Va por buen camino
crea un procedimiento en tu base de datos y luego esta la puedes consultar como si fuera una tabla mas.


procedimiento en la base de datos.

icodigo parametro de entrada.

***procedimiento kardex***

begin
/* Procedure Text */
nvariable = 0.0;
for select clavemi, codigo, fechadoc, tipo, referencia, cantidad, precio, documento, mov
from cmovinv where codigo = :icodigo order by clavemi
into :sclavemi, :scodigo, :sfechadoc, :stipo, :sreferencia, :scantidad, :sprecio, :sdocumento, :smov
do
begin
if (:smov = 'E') then
nvariable = nvariable + scantidad;
else
nvariable = nvariable - scantidad;
sexist = nvariable;
suspend;
end
end


y el codigo:


with DMSIU.zroqryListados do
begin
Close;
SQL.Clear;
DMSIU.cdsClientes.Active:=false;

SQL.Add('select scodigo, sfechadoc, stipo, sreferencia, sdocumento, sprecio,smov, scantidad, sexist, sclavemi from kardex('''+sDaCodigo+''') ');

Open;
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 15-09-2007 a las 20:09:36.
Responder Con Cita
  #8  
Antiguo 16-09-2007
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Smile TXQuery

Existe un componente llamado TXQuery que hace precisamente lo que buscas, hace un query sobre cualquier dataset abierto.

Lo tengo desde hace tiempo, no recuerdo donde lo baje pero buscando en google seguro lo encuentras.

Saludos
Responder Con Cita
  #9  
Antiguo 17-09-2007
eldiegofg eldiegofg is offline
Miembro
 
Registrado: mar 2007
Ubicación: Colón - Entre Ríos
Posts: 54
Poder: 18
eldiegofg Va por buen camino
Solucionado!

Muchas gracias gente, ya he solucionado mi problema.Saludos
Responder Con Cita
  #10  
Antiguo 19-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por eldiegofg Ver Mensaje
Muchas gracias gente, ya he solucionado mi problema.Saludos
¿Podrías decir como para que quede constancia si alguien se encuentra con la misma duda?

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #11  
Antiguo 19-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Quita los paréntesis que están después del NOT IN y los del final y te funcionará.

Código SQL [-]
SELECT DISTINCT N_HAB FROM HABITACIONES WHERE N_HAB NOT IN  SELECT NHABITACION FROM RESERVAS WHERE FECHA BETWEEN :FI AND :FF) UNION (SELECT NHABITACION FROM ESTADIAS WHERE FECHA BETWEEN :FI AND :FF
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
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
Tabla externa en query llonigualker Conexión con bases de datos 3 28-04-2006 12:14:22
Consulta de Query marceloalegre SQL 3 06-02-2006 16:38:37
Tengo una consulta en un query ElDioni SQL 3 12-07-2005 11:41:34
Consulta con una variable en un Query Ricsato SQL 3 25-11-2003 22:47:37


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


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