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
Daj mi znać, jeśli w pending_payments
może być wiele wierszy dla tego samego invoice_id
i zaproponuję alternatywne rozwiązanie.