Użyj sum bezpośrednio, ponieważ twoje połączenia prawdopodobnie tworzą więcej rzędów w kombinacji, które chcesz.
Wypróbuj następujące:
SELECT id, MAX(Total) as FinalTotal ,MAX(Payment) as FinalPayment
FROM si_invoices a
left join
(select invoice_id, sum(total) as Total from si_invoice_items group by invoice_id) b
on a.id = b.invoice_id
left join
(select ac_inv_id, sum(payment) as Payment from si_payment group by ac_inv_id) c
on c.ac_inv_id = a.id
group by id
lub jeśli identyfikator jest unikalny:
SELECT *
FROM si_invoices a
left join
(select invoice_id, sum(total) as Total from si_invoice_items group by invoice_id) b
on a.id = b.invoice_id
left join
(select ac_inv_id, sum(payment) as Payment from si_payment group by ac_inv_id) c
on c.ac_inv_id = a.id