sql >> Databasteknik >  >> RDS >> Mysql

MYSQL LEFT JOIN FEL RESULTAT

Du har flera rader i kredittabellen, detta gör flera rader före den grupp som orsakar problemet. Du kan se detta om du tar ut gruppen genom och markerar alla kolumner.

Om du grupperar efter i en sub-anslutning försvinner detta problem så har du en rad per kund före gruppen genom.

SELECT 
  customers.id as id, 
  customers.cust_name AS customer_name,
  SUM(cust_debit.debit_amount) as debit,
  SUM(cust_credit.credit_amount) as credit,
  (SUM(cust_debit.debit_amount)) - (SUM(cust_credit.credit_amount)) as balance
FROM customers
LEFT JOIN cust_debit  ON customers.id = cust_debit.cust_id
LEFT JOIN (
  SELECT cust_id, sum(credit_amount) as credit_amount)
  from cust_credit
  group by cust_id
) cust_credit ON customers.id = cust_credit.cust_id
GROUP BY customers.id
ORDER BY customers.id



  1. Hur man infogar data från en databastabell till en annan databastabell i Mysql

  2. Vilket läge för MySQL WEEK() uppfyller ISO 8601

  3. oracle konvertera unix epok tid till datum

  4. Datum/tidsstämpel för att spela in när en post lades till i tabellen?