Bạn có nhiều hàng trong bảng tín dụng, điều này tạo nhiều hàng trước nhóm gây ra sự cố. Bạn có thể thấy điều này nếu bạn tách nhóm ra và chọn tất cả các cột.
Nếu bạn nhóm theo một tham gia phụ, vấn đề này sẽ biến mất thì bạn có một hàng cho mỗi khách hàng trước nhóm theo.
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