Lass mal die SUM und GROUP BY Anweisungen weg und analysiere die tatsächlich zurückgegebenen Datensätze.
Das ist eine gute Idee. Du wirst sehen, dass die Datensätze doppelt und dreifach sind. Und SUM() rechnet die dann auch doppelt und dreifach zusammen. GROUP BY bezieht sich nur auf die Datenfelder, die nicht summiert werden.