Eure Exzellenz,
Was sollen die "@-Variablen" (sind das MySQL-Variablen?)? Braucht man die?
Siehe Benutzerdefinierte Variablen
Mit der Anweisung
SELECT p.name AS Spieler,
@nrSpiele := COUNT(DISTINCT g.id) AS Spiele, --Variable neu hinzugefügt
@nrRunden := COUNT(DISTINCT r1.id) AS Runden, --Variable neu hinzugefügt
@Punkte := SUM((SELECT pa.points FROM point_allocation pa --Variable neu hinzugefügt
WHERE pa.nr_players = ANY
(SELECT COUNT(DISTINCT pg.id) FROM round r2
LEFT JOIN placing pg ON pg.round_id = r2.id
LEFT JOIN game g ON r2.game_id = g.id
WHERE r2.id = r1.id
GROUP BY r1.id)
AND pa.place = pg.place)) AS Punkte,
@Punkte/@nrSpiele AS "Punkte/Spiel" --aus oben eingeführten Variablen neuen Wert berechnen
FROM player p
LEFT JOIN placing pg ON pg.player_id = p.id
LEFT JOIN round r1 ON pg.round_id = r1.id
LEFT JOIN game g ON g.id = r1.game_id
GROUP BY p.name ORDER BY Punkte DESC, Spiele DESC, Runden DESC;
erhoffte ich mir folgendes Ergebnis:
+-----------+--------+--------+--------+--------------+
| Spieler | Spiele | Runden | Punkte | Punkte/Spiel |
+-----------+--------+--------+--------+--------------+
| Christian | 2 | 7 | 280 | 140 |
| Stefan | 2 | 7 | 148 | 74 |
+-----------+--------+--------+--------+--------------+
Ich bekomme jedoch:
+-----------+--------+--------+--------+--------------+
| Spieler | Spiele | Runden | Punkte | Punkte/Spiel |
+-----------+--------+--------+--------+--------------+
| Christian | 2 | 7 | 280 | NULL |
| Stefan | 2 | 7 | 148 | NULL |
+-----------+--------+--------+--------+--------------+
Hochachtungsvoll,
Stefan