Hallo Forum,
ich bin Webmaster in einem Sportverein. Für unsere Statistiken habe ich ein Tool programmiert, in dem für jedes Spiel bestimmte Daten eingefügt werden (Anzahl Tore, Torschütze, Assist, Strafzeiten etc).
Nun geht es ans Auswerten der Statistiken. Gerade bin ich dabei, die durchschnittliche Tore pro Spiel des jeweiligen Spielers auszurechnen. Dafür muss man natürlich die Spiele bei denen der Spieler anwesend war durch die geschossenen Toren des Spielers dividieren.
Folgenden SQL habe ich schon zusammengebastelt:
SELECT name, count( * ) AS anz_spiele,
(
SELECT sum( 1 )
FROM stat_tore
WHERE stat_tore.spieler_id = sz.spieler_id
)
anz_tore
FROM stat_szuordnung sz
LEFT JOIN stat_spieler sp ON sz.spieler_id = sp.ID
GROUP BY sz.spieler_id
Dieser Code gibt mir als Ergebnis den Namen (dazu ist der Left Join da), die Anzahl der Spiele bei denen der Spieler anwesend war (anz_spiele), und die Anzahl der geschossenen Tore des Spielers (anz_tore).
Natürlich möchte ich nun die beiden letzten Spalten dividieren. Dazu füge ich dem SQL eine Zeile nach "anz_tore" hinzu, woraus dann folgender SQL entsteht:
SELECT name, count( * ) AS anz_spiele,
(
SELECT sum( 1 )
FROM stat_tore
WHERE stat_tore.spieler_id = sz.spieler_id
)
anz_tore,
anz_tore/anz_spiele schnitt
FROM stat_szuordnung sz
LEFT JOIN stat_spieler sp ON sz.spieler_id = sp.ID
GROUP BY sz.spieler_id
Doch daraus resultiert folgender Fehler:
#1054 - Unknown column 'anz_tore' in 'field list'
Sprich, MySQL kennt das Feld anz_tore nicht. Das stimmt ja auch, in der Tabelle an sich gibt es diese Spalte nicht. Doch irgendwie muss es doch möglich sein, diese beiden Spalten zu dividieren. Wie müsste das dann aussehen?
Lg
Bloob