Problem mit SUM über viele Tabellen
Oeko
- datenbank
Hallo,
ich habe leider ein Problem.
Ich habe 12 Tabellen in jeder eine Spalte punkte existiert. Das ganze soll eine Auswertungen für einen Wettbewerb werden. In der Übersichtseite sollen alle Werte der bisherigen Punkte zusammengezählt werden.
Als kleinen Ausschitt des Befehls verwende ich (Wird sonst sehr unübersichtlich und das funktioninert auch schon nicht!)
SELECT cl_teams, SUM(cl_klettern.punkte,cl_bob.punkte)AS punkte_gesamt from cl_teams, cl_klettern, cl_bob
Ich habe das ganze auch schon mit einem Join versucht, leider auch ohne Erfolg. Das ganze soll dann am Ende über 12 Tabellen erfolgen. Als Fehlermeldung kommt: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cl_bob.punkte)AS punkte_gesamt from cl_teams, cl_klettern, cl_bob' at line 1
Wir mir scheint habe ich ein Problem mit dem SUM Befehl, allerdings scheint der mir korrekt zu sein!
Wäre Klasse wenn mir hier geholfen werden könnte.
Als Version verwende ich MySQL-Client-Version: 5.0.38
Viele Grüße aus dem Süden
Hallo,
ich habe leider ein Problem.
vermutlich eines mit einer ungünstigen Tabellenstruktur.
Ich habe 12 Tabellen in jeder eine Spalte punkte existiert.
vermutlich sind es 11 Tabellen zuviel :-)
Statt nicht funktionierenden SQL-Code zu liefern, solltest Du einfach zwei Beispieltabellen mit ein paar Beispieldatensätzen zeigen, sowie das gewünschte Ergebnis der Abfrage mit der Begründung, warum dies das Ergebnis ist.
Derzeit vermute ich, dass es in jeder Tabelle die Spalten
- team,
- punkte
gibt (die durchaus etwas anders benannt sein können). Stimmt das in etwa?
Wenn ja, so kannst Du das Ergebnis einfach mit einem Subselect erhalten:
SELECT
gesamt.team,
SUM(gesamt.punkte)
FROM ( -- statt aus einer Tabelle wählen wir
SELECT -- unsere Daten aus einer Zusammenfassung
team, -- aus allen Tabellen aus
punkte
FROM
klettern
[link:http://dev.mysql.com/doc/refman/5.0/en/union.html@title=UNION] ALL -- die wir über UNION erhalten
SELECT
team,
punkte
FROM
bob
) gesamt -- dieser Aliasname ist zwingend erforderlich
GROUP BY
gesamt.team
Freundliche Grüße
Vinzenz