Gewusst wie: Kombinieren von Bedingungen, wenn OR Vorrang hat
Aktualisiert: November 2007
Wenn die mit OR verbundene Bedingungen den Vorrang vor den mit AND verbundenen Bedingungen haben sollen, muss die AND-Bedingung für jede OR-Bedingung wiederholt werden.
Angenommen, Sie möchten alle Mitarbeiter suchen, die der Firma seit mehr als fünf Jahren angehören und gering qualifizierte Tätigkeiten auf unterer Betriebsebene ausführen oder im Ruhestand sind. Diese Abfrage erfordert drei Bedingungen: eine einzelne Bedingung, die mit zwei weiteren Bedingungen durch AND verknüpft ist:
Mitarbeiter, deren Einstellungsdatum mehr als fünf Jahre zurückliegt und
Mitarbeiter mit einer Tätigkeitsstufe von 100 oder Mitarbeiter, deren Status "R" (Ruhestand) ist.
Das folgende Verfahren illustriert die Erstellung einer derartigen Abfrage im Kriterienbereich.
Hinweis: |
---|
Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den in der Hilfe beschriebenen. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
So kombinieren Sie Bedingungen, wenn OR Vorrang hat
Fügen Sie dem Kriterienbereich die Datenspalten hinzu, die durchsucht werden sollen. Wenn Sie dieselbe Spalte nach zwei oder mehr mit AND verbundenen Bedingungen durchsuchen möchten, müssen Sie den Namen der Datenspalte für jeden zu suchenden Wert einmal in das Datenblatt einfügen.
Erstellen Sie die Bedingungen, die mit OR verknüpft werden sollen, indem Sie die erste Bedingung in die Datenblattspalte Filter und die zweite (sowie alle weiteren) Bedingungen in jeweils unterschiedliche Spalten Oder... eingeben. Um beispielsweise Bedingungen mit OR zum Durchsuchen der Spalten job_lvl und status zu verknüpfen, geben Sie = 100 in die Spalte Filter für job_lvl und = 'R' in die Spalte Oder... für status ein.
Wenn Sie diese Werte im Datenblatt eingeben, wird die folgende WHERE-Klausel in der Anweisung im SQL-Bereich erstellt:
WHERE (job_lvl = 100) OR (status = 'R')
Erstellen Sie die AND-Bedingung, indem Sie sie für jede OR-Bedingungen einmal eingeben. Nehmen Sie den Eintrag jeweils in der Datenblattspalte der entsprechenden OR-Bedingung vor. Um beispielsweise eine AND-Bedingung hinzuzufügen, die in der Spalte hire_date sucht und für beide OR-Bedingungen gilt, geben Sie < '1/1/91' sowohl in die Spalte Kriterien als auch in die Spalte Oder... ein.
Wenn Sie diese Werte im Datenblatt eingeben, wird die folgende WHERE-Klausel in der Anweisung im SQL-Bereich erstellt:
WHERE (job_lvl = 100) AND (hire_date < '01/01/91' ) OR (status = 'R') AND (hire_date < '01/01/91' )
Tipp: Sie können eine AND-Bedingung wiederholen, indem Sie sie einmal einfügen und dann mithilfe der Befehle Ausschneiden und Einfügen aus dem Menü Bearbeiten für die anderen OR-Bedingungen kopieren.
Die WHERE-Klausel, die vom Abfrage- und Ansicht-Designer erstellt wird, entspricht der folgenden WHERE-Klausel, in der zum Festlegen des Vorrangs von OR vor AND Klammern verwendet werden:
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
Hinweis: |
---|
Wenn Sie die Suchbedingungen im unmittelbar oberhalb des SQL-Bereichs angezeigten Format eingeben und dann im Diagramm- oder Kriterienbereich Änderungen an der Abfrage vornehmen, wird die SQL-Anweisung vom Abfrage- und Ansicht-Designer neu erstellt, damit sie mit dem Formular übereinstimmt, das die explizit auf beide OR-Bedingungen verteilte AND-Bedingung enthält. |
Siehe auch
Konzepte
Konventionen für das Kombinieren von Suchbedingungen im Kriterienbereich
Referenz
Vergleichsoperatoren (Visual Database Tools)