Вместо ffmaprep лучше использовать fvmaprep.
Сильно в условия не вникал, кучу условий еще соблюсти надо бы - возвраты например.
Но на базе этого можно двигаться дальше.
SQL код:
select inc.article, inc.docid in_doc, inc.qty in_qty, inc.sum in_sum, NVL(outc.qty, 0) out_qty, NVL(outc.sum, 0) out_sum,
(inc.qty-NVL(outc.qty, 0)) ost_qty
from
( select m.article, m.saleid docid, sum(m.saleq) qty, sum(m.salesum) sum
from FVMAPREP m
where m.article = '512345' and m.saletype = 'WI' and m.saleop=0
group by m.article, m.saleid
) inc,
( select m.article, m.incomeid docid, sum(m.quantity) qty, sum(decode(m.SaleQ, 0, 0, m.SaleSum*m.Quantity/m.SaleQ)) sum
from FVMAPREP m
where article = '512345' and saletype in ('WO','CS') and m.saleop=1
group by m.article, m.incomeid
) outc
where inc.article=outc.article(+) and inc.docid=outc.docid(+)
and (inc.qty-NVL(outc.qty,0))>0
;