PDA

Ver la Versión Completa : Duda en Consulta SQL desde delphi


romfrost13
18-08-2003, 20:28:19
Hola a Todos Y gracias por sus anteriores respuestas...

Tengo una, no se como llamarla duda o necedad, pero quiero hacer una query de una query se puede?, me explico:

Estoy utilizando D6 e interbase 6 ademas de ib expert 2

Problema:
Tengo una vista generada en la base de datos que me agrupa informacion de 4 tablas diferentes, de ella obtengo todos los reportes en delphi.

Lo que quiero hacer es:
Desde delphi (en estos momentos ya lo hago) hacer una query utilizando el ibquery en esta query colecto la informacion de una serie de personas en determinado periodo, ahora lo que quiero hacer es otra query de esta, haciendo una suma de uno de sus campos y agrupandola por otro.

tratare de explicarlo con un diagrama
BD->VISTA->QUERY1->QUERY2
EL PROBLEMA ES COMO HAGO UNA QUERY DE OTRA SI NO TENGO IDEA DONDE ESTAN LOS DATOS Y CUANDO TRATO DE ENLAZAR LAS DOS QUERYS EN DELPHI ME MARCA O ME DICE QUE LA TABLA NO EXISTE(esto lo puedo entender por que realmente la tabla no existe es una query creada en delphi)

El motivo de hacer esto es evitar recorrer todos los registros de la vista para ir sumando los valores <- Eso ya lo intente y si funciona tomando los datos de la base de datos, ahora lo importante que no he mencionado es que la consulta 1 la filtro y quiero que las sumas se filtren tambien<-esta parte me la facilitaria si pudiese hacer la query de la query...

espero haberme explicado si no avisenme y le mando el problema con lujo de detalle...

Aprendiz
01-09-2003, 15:13:20
A ver yo lo que haría es dentro de una sola consulta. Ya se que dices que no es lo que quieres hacer para no ir sumando todas las cantidades de los registros pero no es así.

Si tu pones una condición del where el tema de escoger solo un determinado rango de usuarios, vamos las condiciones iniciales de la primera query que quires hacer, y luego le añades las que tu quieres para la segunda. Esto te discriminará de una pasada todas aquellas que no interesen y ya no te las sumará con el group by que quieres hacer.

De todas maneras te recomiendo que juegues con los ordenes en las condiciones del where o que incluso te plantees tu mismo un plan de ejecución de la consulta. Mirate el IBConsole, la ventana de ejecución de consultas, tiene una pestaña de Plan de ejecución utilizado, es bastante interesante. Cuando ejecutas una consulta siempre te pone que plan ha utilizado. Además dentro de la instrucción SELECT puedes definirte el plan de ejecución, mirate la ayuda que lo explica.

Saludos

romfrost13
01-09-2003, 18:43:00
Gracias Por tu respuesta, ya he solucionado mi problema pero de todos modos me ha sido util la sugerencia de utilizar esa herramienta ya que no sabia de su existencia investigare al respecto...