Frage von Tomzilla, 56

IF-Statement MySQL?

Hallo zusammen,

Ich habe ein Problem mit einem IF-Statement in MySQL. Ich suche bereits seit etwa einer halben Stunde auf Google nach der Lösung, finde sie aber nicht. Vielleicht kann mir ja einer von euch helfen.

Beim ausführen der nachfolgenden Abfrage kommen folgende drei Fehlermeldungen:

Msg 156, Level 15, State 1, Line 37 Incorrect syntax near the keyword 'IF'.

Msg 102, Level 15, State 1, Line 37 Incorrect syntax near ','.

Msg 102, Level 15, State 1, Line 37 Incorrect syntax near ','.

Und hier ist die entsprechende Abfrage:

-- Anzahl Siege der Schweiz
SELECT COUNT(s.id) AS 'Anzahl Spiele der Schweiz' FROM spiel AS s
    LEFT JOIN team AS t ON s.team1_id = t.id OR s.team2_id = t.id
        WHERE t.name = 'Schweiz'
            AND IF(s.team1_id = (SELECT t.id WHERE t.name = 'Schweiz'), s.team1_goal, s.team2_goal) > IF(s.team1_id != (SELECT t.id WHERE t.name = 'Schweiz'), s.team1_goal, s.team2_goal);

Wenn ihr noch irgendetwas braucht dann gebt bitte einfach Bescheid.

Vielen Dank und Gruss

Tomzilla

Ps. Es betrifft folgende Tabellen:

CREATE TABLE team(
id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
name VARCHAR(50) NOT NULL,
gruppe_id INT
);
CREATE TABLE spiel(
id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
team1_id INT NOT NULL,team1_goal INT NOT NULL,
team2_id INT NOT NULL,team2_goal INT NOT NULL,
datum DATE NOT NULL,
zeit TIME
);
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Orsovai, 15

Hallo!

Habe inzwischen eine Lösung gefunden, falls Du die noch brauchst ;-)

Auf eine schöne EM!

Liebe Grüße!

Kommentar von Tomzilla ,

Hei Orsovai!

Ich danke dir viel mals!

Schöne EM! Möge die Schweiz Deutschland schlagen :P

LG

Antwort
von Orsovai, 39

Kannst Du kurz die Struktur aller benutzen Zeilen aller benutzen Tabellen posten bzw. die erste zwei Zeilen der betroffenen Tabellen?

Z.B. Screnshots des Results von

desc [Deine Tabelle];
Kommentar von Tomzilla ,

Danke für deine Antwort!

Ich habe der Frage jetzt noch die CREATE TABLEs angefügt. Hoffe das reicht dir, weiss leider nicht wie ich dir noch einen Screenshot geben kann.

Aber danke für deine Mühe.

Kommentar von Orsovai ,

Okay, danke so passt alles.

Ich verstehe noch nicht so ganz, was Du mit dem IF-Statement erreichen willst. Die Anzahl Spiele der Schweiz hast Du doch auch so schon.

Kommentar von Tomzilla ,

Ich möchte nur die Siege der Schweiz herausfiltern.

Also möchte ich die Tore vergleichen. Da die Schweiz aber die Heim (team1) oder die Gast (team2) Mannschaft sein kann, prüfe ich zuerst ob die Schweiz Team1 ist. Wenn ja schaue ich ob die Tore vom Team1 höher sind, als die von Team2 und umgekehrt.

Also vielleicht hast du ja auch eine bessere Lösung aber das war so meine Überlegung.

Keine passende Antwort gefunden?

Fragen Sie die Community