Hallo zusammen,
ich bin gerade dabei ein Tabelle zu erzeugen, die die Spieltagsresultate zusammenfasst und daraus dann die Meistertabelle erzeugt. Habe mich erst einmal an den 33. und 34. Spieltag der 1. Bundesliga für die gerade beendete Saison gewendet.
Habe schon mehrere Ansätze, jedoch noch kein konkretes Ergebnis.
1. Abfrage
Das Ergebnis schaut wie folgt aus.
Jetzt muss ich es hierbei eigentlich nur noch schaffen das ganze über die Team_id zu gruppieren und die Punkte zu addieren. Jedoch ist mir nicht ganz bewußt wie ein weiteres select mit group via UNION angefügt werden kann. Sowern dies überhaupt möglich ist.
2. Abfrage
Das Ergebnis schaut wie folgt aus:
Bis jetzt habe ich es nur noch geschafft dies auch für jedes Team zu gruppieren. Zumal auch nur das Team was gewonnen hat, auch die Punkte erhalten soll. Home oder guest eben. Inwiefern man dies noch via case when end lösen kann, ist mir auch nicht bewußt.
Die obere Variante ist für mich die einfachste in Betracht kommende für die Realisierung. Ich hoffe das mir einer von Euch bei diesem Problem behilflich sein könnte.
MfG + Thanx,
Heinzelmännchen
ich bin gerade dabei ein Tabelle zu erzeugen, die die Spieltagsresultate zusammenfasst und daraus dann die Meistertabelle erzeugt. Habe mich erst einmal an den 33. und 34. Spieltag der 1. Bundesliga für die gerade beendete Saison gewendet.
Habe schon mehrere Ansätze, jedoch noch kein konkretes Ergebnis.
1. Abfrage
Code:
SELECT team_id, team_name, 3 AS points, "home" AS location FROM soccer_teams JOIN soccer_matches ON match_team_home = team_id WHERE league_id =1 AND season_id =1 AND match_goal_home > match_goal_guest UNION SELECT team_id, team_name, 3 AS points, "guest" AS location FROM soccer_teams JOIN soccer_matches ON match_team_guest = team_id WHERE league_id =1 AND season_id =1 AND match_goal_home < match_goal_guest UNION SELECT team_id, team_name, 1 AS points, "home" AS location FROM soccer_teams JOIN soccer_matches ON match_team_home = team_id WHERE league_id =1 AND season_id =1 AND match_goal_home = match_goal_guest UNION SELECT team_id, team_name, 1 AS points, "guest" AS location FROM soccer_teams JOIN soccer_matches ON match_team_guest = team_id WHERE league_id =1 AND season_id =1 AND match_goal_home = match_goal_guest
Code:
team_id | team_name | points | location --------+--------------------------+--------+--------------- 7 | Bayer 04 Leverkusen | 3 | home 8 | Borussia Dortmund | 3 | home 13 | 1. FSC Mainz 05 | 3 | home 6 | Werder Bremen | 3 | home 11 | Hannover96 | 3 | home 17 | VfL Bochum | 3 | home 2 | FC Bayern München | 3 | home 13 | 1. FSC Mainz 05 | 3 | gues 2 | FC Bayern München | 3 | gues 17 | VfL Bochum | 3 | gues 10 | VfL Wolfsburg | 3 | gues 3 | FC Schalke 04 | 3 | gues 6 | Werder Bremen | 3 | gues 8 | Borussia Dortmund | 3 | gues 5 | Herta BSC | 1 | home 19 | FC Hansa Rostock | 1 | home 10 | VfL Wolfsburg | 1 | home 16 | Borussia Mönchengladbach | 1 | home 11 | Hannover96 | 1 | gues 14 | DSC Arminia Bielefeld | 1 | gues 7 | Bayer 04 Leverkusen | 1 | gues 5 | Herta BSC | 1 | gues
2. Abfrage
Code:
SELECT match_day, match_team_home, match_team_guest, match_goal_home, match_goal_guest, CASE WHEN match_goal_home > match_goal_guest THEN 3 WHEN match_goal_guest > match_goal_home THEN 3 WHEN match_goal_home = match_goal_guest THEN 1 END AS points FROM soccer_matches
Code:
match_day | match_team_home | match_team_guest | match_goal_home | match_goal_guest | points ----------+-----------------+------------------+-----------------+------------------+-------------- 34 | 15 | 13 | 1 | 2 | 3 34 | 4 | 2 | 1 | 3 | 3 34 | 9 | 17 | 0 | 1 | 3 34 | 5 | 11 | 0 | 0 | 1 34 | 7 | 16 | 5 | 1 | 3 34 | 14 | 10 | 1 | 2 | 3 34 | 8 | 19 | 2 | 1 | 3 34 | 18 | 3 | 2 | 3 | 3 34 | 12 | 6 | 1 | 2 | 3 33 | 13 | 12 | 3 | 2 | 3 33 | 6 | 18 | 4 | 1 | 3 33 | 3 | 8 | 1 | 2 | 3 33 | 19 | 14 | 1 | 1 | 1 33 | 10 | 7 | 2 | 2 | 1 33 | 16 | 5 | 0 | 0 | 1 33 | 11 | 9 | 2 | 1 | 3 33 | 17 | 3 | 2 | 0 | 3 33 | 2 | 15 | 6 | 3 | 3
Die obere Variante ist für mich die einfachste in Betracht kommende für die Realisierung. Ich hoffe das mir einer von Euch bei diesem Problem behilflich sein könnte.
MfG + Thanx,
Heinzelmännchen