Freigeben über


Vorgehensweise: Kombinieren von Bedingungen, wenn OR Vorrang hat (Visual Database Tools)

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.

So kombinieren Sie Bedingungen, wenn OR Vorrang hat

  1. 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.

  2. 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. Geben Sie = 100 in die Spalte Filter für job_lvl und = 'R' in die Spalte Oder... für status ein, um beispielsweise Bedingungen mit OR zum Durchsuchen der Spalten job_lvl und status zu verknüpfen.

    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')
    
  3. 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. Geben Sie beispielsweise < '1/1/91' sowohl in die Spalte Kriterien als auch in die Spalte Oder... ein, um eine AND-Bedingung hinzuzufügen, die in der Spalte hire_date sucht und für beide OR-Bedingungen gilt.

    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' )
    
    TippTipp

    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 Sicht-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')
HinweisHinweis

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 Sicht-Designer neu erstellt, damit sie mit dem Formular übereinstimmt, das die explizit auf beide OR-Bedingungen verteilte AND-Bedingung enthält.