Ver Mensaje Individual
  #1  
Antiguo 01-06-2007
ferjavrec2 ferjavrec2 is offline
Registrado
 
Registrado: may 2007
Posts: 7
Reputación: 0
ferjavrec2 Va por buen camino
Mejorar SELECT COUNT

Hola estoy haciendo una consulta a una base firebird y lo hago de esta forma.

Código:
 with dm1.Movimientos do
  begin
    Close;
    SelectSQL.Clear;
    SelectSQL.Add('select movi_coop, movi_servicio, movi_medidor, movi_establecimiento,');
    SelectSQL.Add('movi_factura, movi_unidades, movi_importe, movi_enviado, movi_coop_nombre,');
    SelectSQL.Add('(select count(*) from movimientos where 1=1 and movi_enviado = ''no'' AND movi_servicio = '''+Temp+''' AND clave_organizacion = '''+inttostr(org_activa)+''')as TRegs,');
    SelectSQL.Add('(select sum(movi_importe) from movimientos where 1=1 and movi_enviado = ''no'' AND movi_servicio = '''+Temp+''' AND clave_organizacion = '''+inttostr(org_activa)+''')as GTotal');
    SelectSQL.Add('FROM movimientos');
    SelectSQL.Add('WHERE movi_enviado = ''no''');
    SelectSql.Add('AND movi_servicio = '''+Temp+'''');
    SelectSQL.Add('AND clave_organizacion = '''+inttostr(org_activa)+'''');
    SelectSQL.Add('ORDER BY movi_coop, movi_establecimiento');
    Open;
Se puede hacer de otra forma, ya que estoy repitiendo casi la misma consulta tres veces. Me refiero a SELECT COUNT y SELECT SUM.
bueno muchas gracias
saludos
Responder Con Cita