sql >> Database >  >> RDS >> Mysql

MYSQL LEFT JOIN ONJUIST RESULTAAT

Je hebt meerdere rijen in de credittabel, dit maakt meerdere rijen voor de groep waardoor het probleem wordt veroorzaakt. U kunt dit zien als u de groep verwijdert door alle kolommen te selecteren.

Als je groepeert op in een sub-lidmaatschap, verdwijnt dit probleem, dan heb je één rij per klant voor de groep op.

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. hibernate:maak een tabel met namen in kleine letters

  2. Oracle Database 21c voor Linux-platforms

  3. Meerdere transacties tegelijk uitvoeren in PostgreSQL

  4. Hoe rijen om te zetten in kolommen in SQL Server?