SQL- Case konstrukt?

Hey, Also ich habe folgende Tables:

Nun lautet die Aufgabe:

  1. Ermitteln Sie für jede Mannschaft die Heim-Punktzahl am Ende der Saison (dabei gibt ein Heimergebnis von 1 für die Heimmannschaft 3 Punkte, von 0 für beide Mannschaften 1 Punkt und von für die Heimmannschaft 0 Punkte).Geben Sie die Teamhomeid und die Punktzahl (benannt Punktzahl) aus.
WITH pz AS (SELECT t1.TeamID  ,(CASE WHEN m.ResultOfTeamHome = 1 THEN  3
                WHEN m.ResultOfTeamHome = 0 THEN  1 
                WHEN m.ResultOfTeamHome = -1 THEN 0
                END
                ) AS Punktzahl
                FROM matches m, teams t1
                WHERE t1.TeamID = m.TeamHomeID)
SELECT SUM(pz.punktzahl) AS punktzahl , pz.TeamID
FROM pz
GROUP BY pz.TeamID

Dies wäre mein jetziges Ergebnis. Hier hab ich jedoch noch nicht, dass bei beiden Teams um 1 erhöht wird , wenn m.ResultOfTeamHome = 0 gilt. Gerade wird nur bei der Heimmannschaft um 1 erhöht.

Wie könnte ich das lösen.

Hier wäre noch ein Table, der die jeweilige Heimmannschaft und den Gegner und die Punkte die die Heimmannschaft bekommt beinhaltet:

SELECT t1.TeamID AS HeimTeam ,t2.name , t1.name,(CASE WHEN m.ResultOfTeamHome = 1 THEN  3
                WHEN m.ResultOfTeamHome = 0 THEN  1 
                WHEN m.ResultOfTeamHome = -1 THEN 0
                END
                ) AS Punktzahl
FROM matches m, teams t1, teams t2
WHERE t1.TeamID = m.TeamHomeID AND t2.teamID = m.TeamAwayID
ORDER BY t1.TeamID ASC

Bild zum Beitrag
SQL, Datenbank

Meistgelesene Beiträge zum Thema SQL