Ver Mensaje Individual
  #5  
Antiguo 17-01-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 18
mjjj Va por buen camino
Esta medio complicado esto parece, les expongo otro ejemplo que me esta ocurriendo lo mismo.

Código Delphi [-]
 IBQUERY6.Close;
 IBQUERY6.SQL.CLEAR;
 IBQUERY6.SQL.ADD('select area, sum(monto),');
 IBQUERY6.SQL.ADD('(SELECT SUM(MONTO_COMPR) FROM COMPRAS WHERE AREA = P.AREA AND ano=:ano AND mes=:mes AND EMPRESA =:EMPRESA');
 IBQUERY6.SQL.ADD('AND OFICINA ='+QUOTEDSTR(SCOMBOBOX3.TEXT));
 IBQUERY6.SQL.ADD('AND ESTADO ='+QUOTEDSTR('F')+'),');
 IBQUERY6.SQL.ADD('(SELECT COUNT(ESTADO) FROM COMPRAS WHERE AREA  = P.AREA AND ano=:ano AND mes=:mes AND EMPRESA =:EMPRESA');
 IBQUERY6.SQL.ADD('AND OFICINA ='+QUOTEDSTR(SCOMBOBOX3.TEXT));
 IBQUERY6.SQL.ADD('AND ESTADO ='+QUOTEDSTR('P')+')');
 IBQUERY6.SQL.ADD('from PRESUPUESTO P where EMPRESA =:EMPRESA');
 IBQUERY6.SQL.ADD('AND ano=:ano AND mes=:mes');
  IBQUERY6.SQL.ADD('AND OFICINA ='+QUOTEDSTR(INTTOSTR(OFI)));
 IBQUERY6.SQL.ADD('group BY AREA');
 IBQUERY6.parambyname('empresa').AsString:=empresa;
 IBQUERY6.parambyname('ano').asinteger:=calendar1.year;
 IBQUERY6.parambyname('mes').asinteger:=calendar1.month;
 ibquery6.Open;

Que es lo que me entrega.

Un listado de las distintas area, con su respectivo sumatoria de montos de ordenes de compra y la cantidad de ordenes con presupuesto escedido.

Como puedo mejorar esta consulta SQL para que sea mas eficiente.

La verdada es que no entiendo muy bien como opera el iiner joi, ni menos si es que me puede servir en mi caso.

Bueno los dejo aer si me ponene un ejemplo de como quedaría mi consulta agregando alguna mejor idea.

Saludos
Responder Con Cita