Ver la Versión Completa : 2 Consultas Dependientes
Hola, tengo un problemita que no se como solucionarlo... aer si me ayudan.
Quiero mostrar en un TDbGrid dos campos distintos. El problema es que la informacion del segundo campo depende de la primera... ufff, mejor expongop un ejemplo.
He estado pensando un un codigo que pudiese funcionar, va algo asi:
select distinct area, (select sum(monto) from presupuesto where empresa='empresa1' AND AREA LIKE 'AREA1(DEPENDE DE LA PRIMERA CONSULTA)' AND PERIODO='periodo1')
AS SUBTOTAL) FROM ESTRUCTURA WHERE EMPRESA ='empresa'
No se si podra hacer esto, ni si me explique bien
Espero me puedan ayudar.
Saludos
ContraVeneno
10-04-2008, 23:00:00
Select E.Area, Sum(P.Monto) as Monto
From Estructura E
Join Presupuesto P on E.Empresa = P.Empresa and E.Area = P.Area and E.Periodo = P.Periodo
where E.Empresa = 'Empresa'
Group By E.Area
Lo acomode segun mis requerimientos, pero no me arroja los resultados que necesito... es decir, me arroja todas las distintas area, pero el suma la suma de da valores que no corresponden...
Select E.Area, Sum(P.Monto) as Monto
From Estructura E
Join Presupuesto P on P.Empresa = E.Empresa and P.Area = E.Area AND P.PERIODO = '2008-03'
where E.Empresa = 'MAT'
Group By E.Area
Haber si se les ocurre como lo soluciono...
gracias
No se que ocurre... pero esto no funcione que es debido o a lo mejor es que no se puede hacer.
Espongo el codigo...
Select e.Area AREA, SUM(p.Monto) Monto
From Estructura E, Presupuesto P
where e.Area = p.Area AND P.PERIODO = '2008-03'
and e.Empresa = 'LUZ' and P.empresa = 'LUZ'
Group By E.Area
El resultado de la primera parte de la consulta es...
area1
area2
area3
area4
En la segunda parte (la suma de los montos) necesito que me sume todos los montos en relacionados con el area correspondiente, es decir, por ejemplo para el area1, area2, area3 y area4.
En conclusion la segunda parte de la consulta depende de los resultados de la primera parte....
Esto se puede hacer??
Espero que me puedan ayudar... Saludos
Parece que no se me entiende... lo expongo de otra manera.
Se puede hacer una consulta con las respuesta de otra consulta???
Lo que yo hago ahora es lo siguiente. Realizo una consulta la que me entrega un listado de registros, que los guardo en un listbox con el siguiente codigo
ibquery1.sql.add('select distinct area from estructura')
listbox1.clear;
while not ibquery1.eof do
begin
listbox1.items.add(ibquery1.fieldbyname('area').asstrinG);
ibquery1.next;
end;
La cantidad de registros del listbox puede ser de hasta unos 20 registros.
luego realizo otra consulta en donde hago la suma...
for I:=0 to listbox1.Items.Count-1 do
begin
IBQUERY2.Close;
IBQUERY2.SQL.CLEAR;
IBQUERY2.SQL.ADD('SELECT MONTO FROM PRESUPUESTO');
IBQUERY2.SQL.ADD('WHERE EMPRESA ='+QUOTEDSTR('MAT'));
ibquery2.SQL.add('AND area ='+quotedstr(listbox1.Items[I]));
IBQUERY2.Open;
if ibquery2.IsEmpty = FALSE then
while not ibquery2.eof do
BEGIN
MONTO:=MONTO+IBQUERY2.FieldByName('MONTO').ASFLOAT;
IBQUERY2.NEXT;
end;
END;
Esto funciona bien, pero LEEEENTO... porque debe hacer muchas consultas.
Es posible realizar esto mismo en una sola consulta??
Espero que me puedan ayudar.... muchas gracias
Saludos
Así de memoria yo diría:
select empresa, area, sum(monto)
from presupuestos
where empresa = :emp
group by empresa, area
y el resultado sería la suma de cada área de la misma empresa. Habría tantos registros como áreas.
Saludos
Gracias Lepe, con tu ayude pude solucionar en parte mi problema.
Ahora bien, una ultima pregunta....
Se puede hacer una consulta con las respuesta de otra consulta, todo dentro de una misma consulta???
Es semejante a las pregunta anterior, pero sabiendo esto puedo mejorar muchisimo mi aplicacion.
Espero se entienda mi consulta, y me puedan dar una respuesta, ya se de que si se puede o no.
Gracias
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.