2017-08-17 1 views
1

ich ein sehr spezifisches Problem habe:SQL-Anweisung oder: jede Zeile mit dem Wert in es zu Fehlfunktionen zeigen

Ich habe eine Liste mit Firmen und verschiedenen Rollen zu diesen Unternehmen in Access, allem in einer Tabelle, es aussieht wie dies:

Unternehmen // Role 1 // Role 2 // Role 3 // Role 4 //

Komp1 // Ted // // // // Jimmy

Komp2// Lin // Ted // Andy // //

und so weiter ...

Ich brauche jetzt eine SQL-Anweisung zu machen, die mir jedes Unternehmen (Reihe) gibt, in denen Ted, als ein Beispiel, eine Rolle.

Ich habe versucht, es so in Access unter SQL - Statement:

SELECT Firmen.Firma, Firmen.[Role1], Firmen.[Role2], Firmen.[Role3] 
FROM Firmen 
WHERE (((Firmen.[Role1])="Ted") AND ((Firmen.[Role2])="Ted") AND ((Firmen.[Role3])="Ted")); 

Aber dann zeigt es nur Zeilen, in denen Ted in der ersten Spalte ist, ich weiß, dass es ein vielleicht dummen Fehler drin ist und ich hatte Dieses Problem schon, aber ich kann mich nicht erinnern, wie ich es letztes Mal gelöst habe.

Wäre schön, wenn man helfen könnte, weil ich es wirklich brauchen für die Arbeit

+0

Sie müssen nur Ihre ändern 'AND's zu' OR's und die parathesises entfernen. Es spielt keine Rolle, welche Rolle er hat und wer hat die anderen Rollen, richtig? – RealCheeseLord

+0

Das ist richtig thx – sandey

Antwort

2

Sie verwenden den and logischen Operator anstelle des or logischen Operator. Ändern Sie es, und Sie sollten in Ordnung sein. Oder noch besser, könnte man die in Operator verwenden:

SELECT Firmen.Firma, Firmen.[Role1], Firmen.[Role2], Firmen.[Role3] 
FROM Firmen 
WHERE "Ted" IN (Firmen.[Role1], Firmen.[Role2], Firmen.[Role3]) 
+1

Der In-Operator passt perfekt. Danke für die schnelle Antwort, die fast mein Leben gerettet hat, sorry für meine Dummheit – sandey

Verwandte Themen