Hi,
ich habe folgendes Problem:
Ich will aus folgenden Ergebnis-Daten die aktuelle "Sport-Ergebnis-Tabelle" berechnen.
Code:
Teams:
* TeamID
* BID = BewerbsID
* Teamname
Code:
Ergebnisse:
* BID = BewerbsID
* HTID = Heim Team-ID
* GTID = Gast Team-ID
* SH = gewonnene Sätze Heimteam
* SG = gewonnene Sätze Gastteam
* PH = gewonnene Punkte Heimteam
* PG = gewonnene Punkte Gastteam
Code:
tabellenpunkte | Wertetabelle
* BID = BewerbsID
* GS = gewonnene Sätze | 3 | 3 | 3 | 2 | 1 | 0
* VS = verlorene Sätze | 0 | 1 | 2 | 3 | 3 | 3
* TP = Tabellenpunkte | 3 | 3 | 2 | 1 | 0 | 0
Nun will ich die Tabelle berechnen, wodür ich zuerst die "Tabellenpunkte" für die Teams berechnen muss. Dies habe ich auch noch zusammengebracht und dann zu einer Tabelle zusammengeführt. So sieht die Abfrage aus:
Code:
SELECT
E1.BID AS BID,
E1.HTID AS TID,
E1.SH AS SG,
E1.SG AS SV,
E1.PH AS PG,
E1.PG AS PV,
PA.Pnk AS Pnk
FROM `ergebnisse` AS E1
LEFT JOIN tabellenpunkte AS PA ON (E1.BID=PA.BID AND E1.SH=PA.GS AND E1.SG=PA.VS)
UNION
SELECT
E2.BID AS BID,
E2.GTID AS TID,
E2.SG AS SG,
E2.SH AS SV,
E2.PG AS PG,
E2.PH AS PV,
PA.Pnk AS Pnk
FROM `ergebnisse` AS E2
LEFT JOIN tabellenpunkte AS PA ON (E2.BID=PA.BID AND E2.SH=PA.VS AND E2.SG=PA.GS)
Nun müsste ich noch das ganze Gruppieren nach BID und TID und die Felder SG, SV, PG, PV und Pnk zusammenrechnen. Doch dabei scheitere ich leider. Müsste dies wohl mit irgendwelchen SubQueries machen, doch dabei bekomme ich permanent fehlermeldungem. Ich verwende MySQL 3.23!!!
Code:
SELECT Erg.BID, Erg.TID, SUM( Erg.SG ) AS SumSG, SUM( Erg.SV ) AS SumSV, SUM( Erg.PG ) AS SumPG, SUM( Erg.Pnk ) AS SumPnk
FROM
((
SELECT E1.BID AS BID, E1.HTID AS TID, E1.SH AS SG, E1.SG AS SV, E1.PH AS PG, E1.PG AS PV, PA.Pnk AS Pnk
FROM `ergebnisse` AS E1 LEFT JOIN tabellenpunkte AS PA ON (E1.BID = PA.BID AND E1.SH = PA.GS AND E1.SG = PA.VS)
UNION
SELECT E2.BID AS BID, E2.GTID AS TID, E2.SG AS SG, E2.SH AS SV, E2.PG AS PG, E2.PH AS PV, PA.Pnk AS Pnk
FROM `ergebnisse` AS E2 LEFT JOIN tabellenpunkte AS PA ON (E2.BID = PA.BID AND E2.SH = PA.VS AND E2.SG = PA.GS)
) AS Erg
)
Kann mir jemand bei der Abfrage helfen?
Vielen Dank