Mal so als Tipp: Lass' alle Aggregatfunktionen (Sum) weg und auch das GroupBy muß kurz raus.
Und jetzt schau dir mal an, was deine Joints eingentlich veranstalten.
(ich glaub nicht, daß es dem entspricht, was du willst)
Im Grunde müssen die SUM-Felder also eher SubSelects sein, würde ich mir mal so denken.
PS: Als [code=
sql]...[/code] macht sich der obrige "Delphi"-Code bestimmt auch viel besser.