update fin_payment_schedule set paidamt = t1.suma, outstandingamt = t1.amount - t1.suma from ( select fin_payment_schedule.fin_payment_schedule_id, 'Order - ' || ad_column_identifier('C_Order', fin_payment_schedule.c_order_id, 'en_US') as id, fin_payment_schedule.amount, fin_payment_schedule.paidamt, fin_payment_schedule.outstandingamt, sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) as suma from c_order, fin_payment_schedule, fin_payment_scheduledetail , fin_payment_detail pd, fin_payment p where c_order.c_order_id = fin_payment_schedule.c_order_id and fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_order and fin_payment_scheduledetail.iscanceled = 'N' and fin_payment_scheduledetail.fin_payment_detail_id = pd.fin_payment_detail_id and p.fin_payment_id = pd.fin_payment_id and p.status not in ('RPAE', 'RPAP', 'RPVOID', 'REM_SENT') and p.processed = 'Y' group by fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.paidamt, fin_payment_schedule.c_order_id, fin_payment_schedule.amount, fin_payment_schedule.outstandingamt having fin_payment_schedule.paidamt <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) union select fin_payment_schedule.fin_payment_schedule_id, 'Invoice - ' || ad_column_identifier('C_Invoice', fin_payment_schedule.c_invoice_id, 'en_US') as id, fin_payment_schedule.amount, fin_payment_schedule.paidamt, fin_payment_schedule.outstandingamt, sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) as suma from c_invoice, fin_payment_schedule, fin_payment_scheduledetail, fin_payment_detail pd, fin_payment p where c_invoice.c_invoice_id = fin_payment_schedule.c_invoice_id and fin_payment_schedule.fin_payment_schedule_id = fin_payment_scheduledetail.fin_payment_schedule_invoice and fin_payment_scheduledetail.iscanceled = 'N' and fin_payment_scheduledetail.fin_payment_detail_id = pd.fin_payment_detail_id and p.fin_payment_id = pd.fin_payment_id and p.status not in ('RPAE', 'RPAP', 'RPVOID', 'REM_SENT') and p.processed = 'Y' group by fin_payment_schedule.fin_payment_schedule_id, fin_payment_schedule.paidamt, fin_payment_schedule.c_invoice_id, fin_payment_schedule.amount, fin_payment_schedule.outstandingamt having fin_payment_schedule.paidamt <> sum(fin_payment_scheduledetail.amount + coalesce(fin_payment_scheduledetail.writeoffamt,0)) ) t1 where fin_payment_schedule.fin_payment_schedule_id = t1.fin_payment_schedule_id;