Lo que quise decir es algo así:
Código SQL
[-]
FOR SELECT
S.IVA, SUM(I.IVA), SUM(I.VALOR),
A.FORMA_PAGO, sum(A.VALOR)
FROM SERVICIO S
INNER JOIN ITEMSERVICIO I ON S.CODIGO = I.SERVICIO
INNER JOIN ORDEN_SERVICIO O ON O.N_ORDEN = I.ORDEN
INNER JOIN FACTURA F ON O.N_ORDEN = F.NORDEN
RIGHT OUTER JOIN ANTICIPO A ON O.N_ORDEN = A.N_ORDEN
WHERE F.N_FACTURA = :FACTURA
GROUP BY S.IVA, A.FORMA_PAGO
INTO
:PORCENTAJE, :TIVA, :TTOTAL,
:FPAGO, :VFPAGO DO
BEGIN
NFAC = :FACTURA;
BASE = :TTOTAL/(1+:PORCENTAJE/100);
BASE1 = :BASE;
BASE = :BASE - (BASE*DESCUENTO/100);
TIVA = BASE1 * (PORCENTAJE/100);
TTOTAL = BASE + TIVA;
SUSPEND;
END
Lo hice con la mano izquierda y sin mirar, sólo espero que se entienda la idea.