SQL Abfrage mit mehreren AND und OR

Jacizzle

Mitglied
Hallöchen..

ich hab da mal wieder nen kleines Problem, was wahrscheinlich einfach zu lösen ist, aber ich komme einfach nicht drauf.

Also ich habe folgendes Problem für die "WHERE-Clausel" ich muss folgende Bedingungen abfrage:

1. Die Arbeitsplatznummer ist NICHT 0 UND die Mitarbeiternummer ist 0

ODER

2. Die Arbeitsplatznummer ist NICHT 0 UND die Mitarbeiternummer ist NICHT 0 UND IstRuesten ist -1

Das muss ich irgendwie in einen SQL - Befehl in die WHERE-Clausel bekommen, dass Problem ist, dass es bei einem OR immer etwas komplizierter wird und da ich die Antwort dringend brauche, frag ich einfach mal hier nach, bevor ich das ganze Internet durchforste.

Ich habs ja schon auf unterschiedliche Arten versucht, z.B. so:

WHERE
(
((Arbeitsplatznummer IS NOT NULL) AND (Mitarbeiternummer IS NULL))

OR

((Arbeitsplatznummer IS NOT NULL) AND (Mitarbeiternummer IS NOT NULL) AND (IstRuesten = -1))
)

P.S: Hab das mal etwas auseinander gerückt damit es etwas übersichtlicher wird.

Das Problem ist, wenn ich den SQL - Befehl bei MSSQL ausführe, reißt er mir die Klammern wieder auf und das OR stimmt wieder nicht mehr:

WHERE (Arbeitsplatznummer IS NOT NULL) AND (Mitarbeiternummer IS NULL)
OR (Arbeitsplatznummer IS NOT NULL) AND (Mitarbeiternummer IS NOT NULL) AND (IstRuesten = - 1)

Bitte um Hilfe :)
 
So?
Code:
WHERE Arbeitsplatznummer IS NOT NULL AND ((Mitarbeiternummer IS NULL) OR (Mitarbeiternummer IS NOT NULL AND IstRuesten = -1))
 
Also hört sich ganz logisch an aber daraus macht er mir das hier:

Bevor ich den SQL-Befehl ausgeführt habe:

WHERE (Mandant = 2)
AND (BelID = 14091)
AND Arbeitsplatznummer IS NOT NULL
AND ((Mitarbeiternummer IS NULL) OR (Mitarbeiternummer IS NOT NULL AND IstRuesten = -1))

Nachdem ich den SQL-Befehl ausgeführt habe:

WHERE (Mandant = 2)
AND (BelID = 14091)
AND (Arbeitsplatznummer IS NOT NULL)
AND (Mitarbeiternummer IS NULL)
OR (Mandant = 2)
AND (BelID = 14091)
AND (Arbeitsplatznummer IS NOT NULL)
AND (Mitarbeiternummer IS NOT NULL)
AND (IstRuesten = - 1)

Hmm :suspekt: ist das vielleicht sogar richtig? Weil er mir für die eine Seite das BelID und Mandant wieder hinzufügt?
 
Zurück