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

Beitrag lesen

Hallo Rolf, hallo Andreas,

danke sehr. Ja, es lag am falsch zugeordneten GROUP BY. Das gehörte nicht ins Hauptselect, sondern ins Subselect. So funktioniert die Abfrage jetzt:

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
	GROUP BY
		saison_id     
    ) AS stat    
    ON saison_id_ = saison_id
WHERE
	saison_spieler.spieler_id = 12

Die langen Tabellennamen habe ich beibehalten, weil ich sonst irgendwann gar nicht mehr durchsehe, T.saison_id ist mir zu abstrakt.

Ich hab auch den Alias saison_id_ im Subselect gelassen, weil es sowohl mit spieltag.saison_id ("Unbekanntes Tabellenfeld") als auch mit stat.saison_id ("Feld 'saison_id' in on clause ist nicht eindeutig") Fehlermeldungen gab.

Schöne Grüße

Nico