select i.invoice_id, coalesce(pp.balance, i.balance) as Balance
from invoices i
left outer join pending_payments pp on i.invoice_id = pp.invoice_id
Deixe-me saber se pode haver várias linhas em
pending_payments
para o mesmo invoice_id
e vou propor uma solução alternativa.