#1064 You have an error in your SQL syntax

alexfrenzel92

SQL-Guru
Beiträge
122
Code:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR (([...]

Code:
SELECT
IF(Wert = 12, Spieler12.Staerke,
IF((Nebenposition1 = 12 OR Nebenposition2 = 12), (Spieler12.Staerke * 0.9),
IF
((Wert = 12 OR Wert = 13 OR Wert = 14) AND (Spalte2 = 12 OR Spalte2 = 13 OR Spalte2 = 14)) OR
((Wert = 15 OR Wert = 16 OR Wert = 17 OR Wert = 18 OR Wert = 9) AND
(Spalte2 = 15 OR Spalte2 = 16 OR Spalte2 = 17 OR Spalte2 = 18 OR Spalte2 = 9)) OR
((Wert = 10 OR Wert = 11 OR Wert = 12) AND (Spalte2 = 10 OR Spalte2 = 11 OR Spalte2 = 12)), (Spieler12.Staerke * 0.75),
Spieler12.Staerke)))
FROM TabelleX
INNER JOIN TabelleY AS Spieler12 ON TabelleX.Spieler12 = Spieler12.ID
INNER JOIN Tabelle1 ON Tabelle1.Wert2 = TabelleX.Wert2
INNER JOIN Tabelle2 ON Tabelle2.Wert4 = Tabelle1.Wert4
WHERE Spieler12.Wert2 = 13

Diese Abfrage müsste meines Verständnisses nach funktionieren.
Liefert aber eine Fehlermeldung. Die Klammern stimmen eigentlich.
Hat jemand ein besseres oder geschulteres Auge als ich und kommt drauf, was da nicht stimmt?

MFG, Danke
 
Werbung:
Lösung:
Code:
SELECT
IF(Wert = 12, Spieler12.Staerke,
IF((Nebenposition1 = 12 OR Nebenposition2 = 12), (Spieler12.Staerke * 0.9),
IF
(((Wert = 12 OR Wert = 13 OR Wert = 14) AND (Spalte2 = 12 OR Spalte2 = 13 OR Spalte2 = 14)) OR
((Wert = 15 OR Wert = 16 OR Wert = 17 OR Wert = 18 OR Wert = 9) AND
(Spalte2 = 15 OR Spalte2 = 16 OR Spalte2 = 17 OR Spalte2 = 18 OR Spalte2 = 9)) OR
((Wert = 10 OR Wert = 11 OR Wert = 12) AND (Spalte2 = 10 OR Spalte2 = 11 OR Spalte2 = 12)), (Spieler12.Staerke * 0.75),
Spieler12.Staerke)))
FROM TabelleX
INNER JOIN TabelleY AS Spieler12 ON TabelleX.Spieler12 = Spieler12.ID
INNER JOIN Tabelle1 ON Tabelle1.Wert2 = TabelleX.Wert2
INNER JOIN Tabelle2 ON Tabelle2.Wert4 = Tabelle1.Wert4
WHERE Spieler12.Wert2 = 13

Eine weitere Klammer nach dem dritten IF hat gefehlt
 
Zurück
Oben