Ich habe eine Abfrage, die ich eine bestimmte Kombination von Kombinationen ausschließen möchte. In diesem Fall möchte ich keine Datensätze, bei denen sowohl die runde ID als auch der Name den angegebenen Werten entsprechen.Where-Klausel, die bestimmte Kombination von Werten ausschließt
Leider schließt meine Abfrage jedes Ergebnis aus, das das eine ODER das andere (trotz der Klammer) hat. Mir ist aufgefallen, dass ich innerhalb der Klammern nur dann unerwartete Ergebnisse erhalte, wenn für beide Variablen '! =' Verwendet wird (wenn einer oder beide '=' verwenden, berücksichtigt er beide Bedingungen wie erwartet).
Kann mir bitte jemand helfen, die Abfrage so anzupassen, dass nur die Ergebnisse ausgeschlossen sind, die beide Kriterien erfüllen? Eine Erklärung, warum das, was ich tue, falsch ist, würde auch geschätzt werden. (Ich hatte Tabellennamen zu ändern, aber hoffentlich ist es immer noch lesbar)
DECLARE @rn VARCHAR(20) = 'Value 1'
DECLARE @round NVARCHAR(15) = 'Value 2'
SELECT DISTINCT rfr.RFId, r2.Name ,dc.Code, r.RoundId
FROM review.RF rf
JOIN review.RFRound rfr ON rfr.RFId = rf.RFId AND ISNULL(rfr.IsDeleted,0)=0
JOIN review.Round r ON r.RoundAutoId = rfr.RoundAutoId
JOIN dc.DeficiencyCode dc ON dc.DeficiencyCodeId = rf.DeficiencyCodeId
JOIN review.SR sr ON sr.SRId = rf.SRId
JOIN reftype.Review r2 ON r2.ReviewId = sr.ReviewId
WHERE (r.RoundId != @round AND r2.Name != @rn) --it basically ignores my parenthesis
Bitte zeigen Sie Beispieldaten. – Siyual