Tach!
Das GROUP BY habe ich, da es einige Aktiviteneinträge mit 9 gibt, d.h. ohne GROUP wäre der gleiche Kunde mehrmals in der Abfrage vorhanden - mach ich doch dann richtig oder nicht?
Nein, GROUP BY als Antwort auf ein ungewolltes kartesisches Produkt kann nicht die Lösung sein, zumal das nur unter MySQL überhaupt geht. Wenn du gruppierst und du andere Daten als die gruppierten oder aggregierte (Funktionen wie SUM/COUNT) in die Select-Klausel stellst, von welchem Datensatz soll der Feldinhalt dann genommen werden? Das geht nur dann problemlos, wenn die Daten durch einen zu wenig einschränkenden Join vervielfältigt wurden oder sie redundant in der Tabelle stehen und die zufälle Auswahl seitens MySQL genau die gewünschten Daten bringt.
Wenn eine Tabelle zu viele Daten enthält, die man für einen Join nicht braucht, kann man zum Beispiel wie folgt vorgehen. Man erstellt erstmal eine Query für diese ansonsten gejointe Tabelle, die exakt die Datenmenge liefert, die man braucht. Darin kann man auch gruppieren, wenn man irgendeine Aggregatfunktion benötigt. Diese Query kann man dann als Subquery in der Hauptquery joinen. Falls sie nur ein einzelnes Feld als Ergebnis hat, kann man sie auch gleich in die Select-Klausel schreiben, in Form einer correlated subquery.
dedlfix.