sql >> Databáze >  >> RDS >> Mysql

MYSQL LEFT JOIN NESPRÁVNÝ VÝSLEDEK

Máte více řádků v kreditní tabulce, to dělá více řádků před skupinou, která způsobuje problém. Můžete to vidět, pokud odeberete skupinu a vyberete všechny sloupce.

Pokud seskupíte podle podřízeného připojení, tento problém zmizí, pak máte jeden řádek na zákazníka před seskupením podle.

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. Stránkování pro zobrazení maximální hodnoty a omezení zbytku

  2. Laravel 5 PDOException nemůže najít ovladač

  3. Příkaz Mysql pro výběr odlišných řádků ze dvou sloupců

  4. Jak dosáhnete toho, aby SQLAlchemy přepsala MySQL při aktualizaci CURRENT_TIMESTAMP