alpman: Datendesign - Konzeptvorschlag

Beitrag lesen

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