나는 다음과 같은 쿼리를 시도하고 ...MySQL의 작은 문제
SELECT b.name AS batch_name, b.id AS batch_id,
COUNT(s.id) AS total_students,
COALESCE(sum(s.open_bal), 0) AS open_balance,
sum(COALESCE(i.reg_fee,0) + COALESCE(i.tut_fee,0) + COALESCE(i.other_fee,0)) AS gross_fee
FROM batches b
LEFT JOIN students s on s.batch = b.id
LEFT JOIN invoices i on i.student_id = s.id
GROUP BY b.name, b.id;
결과가
| batch_name | batch_id | total_students | open_balance | gross_fee |
+------------+-----------+----------------+--------------+-----------+
| ba | 11 | 44 | 0 | 1782750 |
+------------+-----------+----------------+--------------+-----------+
하지만 난 sum(COALESCE(i.reg_fee,0) + COALESCE(i.tut_fee,0) + COALESCE(i.other_fee,0)) AS gross_fee
및 LEFT JOIN fm_invoices i on i.student_id = s.id
을 제거하면 unexpted 결과를 제공하고, 그것이 예상 부여합니다/올바른 결과를 설정 다음과 같이 ...
| batch_name | batch_id | total_students | open_balance | gross_fee |
+------------+-----------+----------------+--------------+-----------+
| ba | 11 | 34 | 0 | 0 |
+------------+-----------+----------------+--------------+-----------+
나는 확실히하고 있으며, 나는 모든 것을 시도하고있다. 지난 시간 이후로 이온, 도와주세요. 내가 질문을 가정
무엇이 당신의 질문입니까? – ajreal
@ajreal 왜 COUNT (s.id)가 첫 번째 쿼리에서 44 개를 반환하고 두 번째 쿼리에서 34 개를 반환하고 동일한 쿼리에서 송장을 합산하는 동안 34 개를 계산할 수 있습니까? – seoppc