sql >> Database teknologi >  >> RDS >> Mysql

MYSQL LEFT JOIN FORKERT RESULTAT

Du har flere rækker i kredittabellen, dette gør flere rækker før den gruppe, som forårsager problemet. Du kan se dette, hvis du udelukker gruppen ved at vælge alle kolonner.

Hvis du grupperer efter i en underdeltagelse, forsvinder dette problem, så har du én række pr. kunde før gruppen ved.

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. Hvad er kardinalitet i MySQL?

  2. Radioknapper ng-tjekket med ng-model

  3. Sådan gemmer du kun tid; ikke dato og tid?

  4. Fejl 508 - Ressourcegrænse er nået (php+mysql+jquery) websted