Nico R.: DB: Problem mit SUM() in Subselect

Beitrag lesen

Hallo zusammen,

ich möchte zu einem Spieler alle Saisons namentlich auflisten, der der Spieler zugeordnet ist (Tabelle saison_spieler). Zusätzlichen sollen die an den einzelnen Spieltagen der jeweiligen Saison gesamt gespielten Minuten, Tore etc. angezeigt werden. Hört sich eigentlich banal an, aber ich hänge irgendwie...

Ich habs auf diesem Weg, per Subselect, versucht:

SELECT 		
	saison_spieler.saison_id AS saison_id,
	saison.name AS saison_name,
	saison.jahr AS saison_jahr,
    stat.spielzeit
FROM 
	`saison_spieler`
JOIN
	`saison`
    ON(saison.id = saison_spieler.saison_id) 
JOIN
	(SELECT 
     	spieltag.saison_id AS saison_id_,
		SUM(spielerstatistik.spielzeit) AS spielzeit
    FROM
    	spielerstatistik 
    JOIN
    	spieltag
        ON(spieltag.id = spielerstatistik.spieltag_id)
    WHERE 
		spielerstatistik.spieler_id = 12
    ) AS stat    
    ON(stat.saison_id_ = saison_id)
WHERE
	saison_spieler.spieler_id = 12
GROUP BY
	saison_id

Das Ergebnis:

Mein Problem ist die Spalte 14. Das SUM() sorgt dafür, dass das Ergebnis aus dem Haupt-SELECT auf nur eine Ergebnis-Zeile eingedampft wird. Die Summe 36517 sind die gespielten Minuten aus allen Saisons. Entferne ich das SUM() aus dem Subselect, bekomme ich dies als Ergebnis:

Jetzt werden die Saisons korrekt aufgelistet, aber die gespielten Minuten sind nur die des ersten Spiels, das der Spieler in der jeweiligen Saison absolviert hat. Das ist ja insofern richtig, als dass keine Gesamtsumme gebildet wird und im Haupt-SELECT nur "Platz" für ein Ergebnis aus dem Subselect ist.

Aber wie erhalte ich denn nun die korrekte Summe aus dem Subselect? Ich habe es auf verschiedenen Wegen versucht. Die jetzt alle aufzuzählen, würde den Rahmen sprengen. Der obige Ansatz scheint mir doch der Vielversprechendste zu sein. Vielleicht hat ja jemand einen Denkanstoß, der mich weiterbringt.

Schöne Grüße und vielen Dank schonmal an alle, die sich die Mühe machen, sich da reinzudenken, das finde ich bei DB-Problemen immer besonderns mühsam.

Nico