Ver Mensaje Individual
  #1  
Antiguo 22-02-2013
FerJavRec FerJavRec is offline
Registrado
 
Registrado: oct 2005
Posts: 7
Reputación: 0
FerJavRec Va por buen camino
Multiples consultas con Firebird.

Hola buenas tardes, estoy trabajando con Delphi 2010 y Firebird 2.5 y tengo una consulta que realizo y funciona bien. Ahora estoy medio trabado y no me doy cuenta de como puedo hacer para obtener un campo con una (suma - resta) de los valores obtenidos en la consulta.
Acá pongo un ejemplo:

Código Delphi [-]
with dm1.Consultas do
 begin
   close;
   sql.Clear;
   sql.Add('SELECT mo.coop, coo.razon_social,');
   sql.Add('(SELECT sum(importe) as total_fac FROM movimientos c1 where c1.coop = mo.coop AND fecha <= ''12/31/2012'' AND tipo = ''F''),');
   sql.Add('(SELECT sum(importe) as total_rec FROM movimientos c2 where c2.coop = mo.coop AND fecha <= ''12/31/2012'' AND tipo = ''R''),');
   sql.Add('(SELECT sum(importe) as total_ntc FROM movimientos c3 where c3.coop = mo.coop AND fecha <= ''12/31/2012'' AND tipo = ''N''),');
   sql.Add('coo.saldo_inicial FROM movimientos mo');
   sql.Add('LEFT JOIN cooperativas coo on (mo.coop = coo.coop)');
   sql.Add('WHERE mo.coop IN (SELECT coop FROM cooperativas where activa = ''si'')');
   sql.Add('GROUP BY mo.coop, coo.razon_social, coo.saldo_inicial');
   open;

 end;

El campo tendria que contener el resultado de:

resultado = ( (total_fac-(total_rec+total_ntc) )

Bueno muchas gracias por su atencion.
saludos
Responder Con Cita