Hola
La verdad sigo intrigado, para mi es una consulta sencilla a una tabla (factura), pidiendo que siga ciertos parametros.
Código Delphi
[-]
sqlFactura.SQL.Clear;
sqlFactura.SQL.Text 'SELECT numefact AS Factura, sum(valor) AS Valor,'+
'fechinivig AS Inicio_Vigencia, fechfinvig AS Fin_Vigencia' +
'FROM factura' +
'GROUP BY cedula, numefact, fechinivig, fechfinvig,'+
'compania, producto' +
'WHERE cedula = :sCedula and sum(valor) <> 0 and compania ='+
':sCompania and producto = :sProducto' +
'ORDER BY cedula, fechinivig' +
sqlFactura.ParamByName('sCedula').AsString := F_Recaudos.eCedula.Text;
sqlFactura.ParamByName('sCompania').AsString := F_Recaudos.cbxCompania.Text;
sqlFactura.ParamByName('sProducto').AsString := F_Recaudos.cbxProducto.Text;
sqlFactura.Open;
Perdona que la alla puesto asi, pero me resulta mas facil leerla, se hace un solo bloque.
La opcion HAVING en algunos casos me ha alentado consultas.
No se porque se te alenta esta sentencia, la verdad lo desconozco.
Saludos