sql >> Database >  >> RDS >> Mysql

Mysql sum-query geeft onjuist resultaat bij gebruik van meerdere joins

Gebruik de totalen rechtstreeks omdat uw joins waarschijnlijk meer rijen in combinatie creëren die u wilt.

Probeer het volgende:

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

of als id uniek is:

    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


  1. SQLite Query Uitzondering Android Studio Syntaxis Foutcode 1

  2. SQL-alchemie:ValueError te veel waarden om uit te pakken?

  3. Een MySQL-query sorteren met ORDER BY of met PHP-sorteerfuncties

  4. ap_pass_brigade is mislukt in de functie handle_request_ipc