Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL LEWY DOŁĄCZ WYNIK NIEPRAWIDŁOWY

Masz wiele wierszy w tabeli kredytowej, to sprawia, że ​​wiele wierszy znajduje się przed grupą, która powoduje problem. Możesz to zobaczyć, jeśli usuniesz grupę i zaznaczysz wszystkie kolumny.

Jeśli zgrupujesz według dołączenia sub, ten problem zniknie, wtedy masz jeden wiersz na klienta przed grupowaniem według.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja MySQL COS() — zwraca cosinus liczby w MySQL

  2. Naprawianie błędu PHP PEAR

  3. Mysql:Optymalizacja znajdowania super węzła w zagnieżdżonym drzewie zestawów

  4. Jaka jest równoważna instrukcja DBCC INPUTBUFFER(@@SPID)(która daje instrukcję sql dla bieżącego połączenia lub określonego połączenia) w MYSQL?

  5. Aktualizacja MySql po wstawieniu nodejs