3 Stimmen

MySQL SUM mehrere Spalten

Ich habe noch eine Frage zur Summe. Ich möchte die Punkte einer Baseball-Mannschaft summieren, indem ich die Punkte der einheimischen Mannschaft mit den Punkten der Gastmannschaft addiere.

Die Spieltabelle sieht folgendermaßen aus:

Baseball_matches (Id, IdTeamHome, IdTeamAway, ScoreHome, ScoreAway, Status)

Ich möchte nach Teams gruppieren und die Gesamtpunktzahl für jedes Team anzeigen, indem ich die Punkte der Spiele mit dem Status "gespielt" addiere.

Für jedes Team: SUM ScoreHome wenn IdTeamHome + SUM ScoreAway wenn IdTeamAway

Wie kann ich das tun?

Gracias.

2voto

Martin Smith Punkte 417623
SELECT Team,
       SUM(Score) AS Score,
       SUM(Won)   AS Won,
       SUM(Lost)  AS Lost
FROM   (SELECT IdTeamHome     AS Team,
               SUM(ScoreHome) AS Score,
               SUM(CASE
                     WHEN ScoreHome > ScoreAway THEN 1
                     ELSE 0
                   END)       AS Won,
        SUM(CASE
              WHEN ScoreHome < ScoreAway THEN 1
              ELSE 0
            END)       AS Lost
        FROM   matches
        WHERE  Status = 'Played'
        GROUP  BY IdTeamHome
        UNION ALL
        SELECT IdTeamAway     AS Team,
               SUM(ScoreAway) AS Score,
               SUM(CASE
                     WHEN ScoreHome < ScoreAway THEN 1
                     ELSE 0
                   END)       AS Won,
        SUM(CASE
              WHEN ScoreHome > ScoreAway THEN 1
              ELSE 0
            END)       AS Lost
        FROM   matches
        WHERE  Status = 'Played'
        GROUP  BY IdTeamAway) D
GROUP  BY Team

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X