Maniac
Erfahrenes Mitglied
Also du musst mir nicht zuhören....
Guckmal hier:
Code:$sql = mysql_query("SELECT sum( heimpunkte ) AS heimplus, sum( gastpunkte ) as gastminus FROM `spiele` WHERE heimteam = 2") or die(mysql_error());
Da bekommt das Team die Gastpunkte direkt mit, auch wenn es eigentlich das Heimteam war.
Wenn du mit der Lösung glücklich bist sag das und ich lasse die Finger vom Thread
lg
Du hast in diesem Sinne schon recht was du sagst, nur ist es auch beabsichtigt das die Gegenpunkte auch mitgezählt weerden.
Beispiel:
ID=1 : ID=2
---------------------------------
2 : 0
0 : 2
1 : 1
------------------------------
3 : 3
Es wird gezählt wieviel Punkte ich in diesen Spielen (Heimspiele) gemacht habe und wieviel Gegenpunkte ich bekomme habe. Im obigen Beispiel hab ich in 3 Spielen in denen ich Heimteam (ID=1) war, 3 Punkte gemacht und 3 Punkte gegen mich bekommen.
In der 2. Abfrage ist es dann genau anderstrum, dort wird gezählt wieviel Punkte ich erzielt habe wo ich Gastteam (ID=1) war. Somit ist bei der 2. Abfrage das Heimteam meine Gegenmannschaft und ich das Gastteam.
Heimteam ID=5 : Gastteam ID=1
-------------------------------------------------
2 : 0
1 : 1
1 : 1
0 : 2
------------------------------------------
4 : 4
Edit: ich habe es dank Deiner Abfrage auf Seite 1 nun hinbekommen. Habe sie allerdings etwas abgeändert. Zumindest wird jetzt die Punktezahl richtig angezeigt:
Code:
SELECT
t.teamname,
@heimpunkte_gesamt := (SELECT sum(s.heimpunkte) FROM spiele s WHERE s.heimteam = t.id GROUP BY t.id LIMIT 1) heimpunkte_gesamt,
@gastpunkte_gesamt := (SELECT sum(s.gastpunkte) FROM spiele s WHERE s.gastteam = t.id GROUP BY t.id LIMIT 1) gastpunkte_gesamt,
@heimgegen := (SELECT sum(s.heimpunkte) FROM spiele s WHERE s.gastteam = t.id GROUP BY t.id LIMIT 1) heimpgegen,
@gastgegen := (SELECT sum(s.gastpunkte) FROM spiele s WHERE s.heimteam = t.id GROUP BY t.id LIMIT 1) gastgegen,
@heim_all := (@heimpunkte_gesamt + @gastpunkte_gesamt) heim_all,
@gast_all := (@heimgegen + @gastgegen) gast_all,
@punkte_diff := (@heim_all - @gast_all) punkte_diff
FROM
teams t
WHERE
t.liga_id=1 AND t.aktiv=1
GROUP BY
t.id
ORDER BY
punkte_diff DESC
ergebnis:
Die Schuldigen = 45 : 9 Differenz: 36
DC Krümel = 44 : 10 Differenz: 34
Overclocks = 38 : 16 Differenz: 22
Teenies und Opa = 27 : 27 Differenz: 0
DC Hackstock = 26 : 28 Differenz: -2
Flying Bears = 23 : 31 Differenz: -8
Mighty Darts = 22 : 32 Differenz: -10
Drei Rosen = 22 : 32 Differenz: -10
Domino Uhus = 21 : 33 Differenz: -12
Bären 3 = 2 : 52 Differenz: -50
genauso wollte ich es
Danke mein Lieber *g*
Zuletzt bearbeitet: