Kombinieren mehrerer Abfragen in einem einzigen Ergebnis mithilfe einer Union-Abfrage

Kombinieren mehrerer Abfragen in einem einzigen Ergebnis mithilfe einer Union-Abfrage

Wichtig :  Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: hier.

Nehmen Sie an eine Access-Datenbank weist zwei nicht verknüpfte Tabellen – ein, in dem Kundendaten und einen anderen gespeichert, die Daten zu Lieferanten speichert – und beide Tabellen ein Kontaktinformationen-Feld vorhanden sein. Sie möchten die Kontaktinformationen aus beiden Tabellen in einer Ansicht anzuzeigen. Hierzu zuerst Erstellen einer Auswahlabfrage für jede Tabelle zum Abrufen der Kontaktinformationen, und klicken Sie dann die Ergebnisse durch Erstellen einer Union-Abfrage kombinieren.

Hinweis : Der Inhalt in diesem Artikel gelten für Access-Desktopdatenbanken. Erstellen oder mithilfe einer Union-Abfrage in Access Webdatenbanken oder Access Web apps.

Kenntnisse über das Erstellen grundlegende Auswahlabfragen? Finden Sie unter erstellen eine einfache Auswahlabfrage.

Zunächst einige Hinweise zum Erstellen einer Union-Abfrage:

  • Die Auswahlabfragen, die Sie in einer Union-Abfrage kombinieren, müssen über die gleiche Anzahl von Ausgabefeldern verfügen, und die Ausgabefelder müssen die gleiche Reihenfolge sowie die gleichen oder kompatible Datentypen aufweisen. Beim Ausführen einer Union-Abfrage werden die Daten aus jedem Satz einander entsprechender Felder in einem Ausgabefeld kombiniert, sodass die Ausgabe der Abfrage über die gleiche Anzahl von Feldern wie jede der SELECT-Anweisungen verfügt.

  • Eine Union-Abfrage ist SQL-spezifisch und muss daher direkt in SQL geschrieben werden. Wechseln Sie zur SQL-Ansicht, um SQL-spezifischer Abfragen wie Union-Abfragen zu schreiben.

Schritt 1: Erstellen der Auswahlabfragen

Hinweis : Obwohl in einer Abfrage mehrere Tabellen oder Abfragen enthalten sein können, wird bei diesem Verfahren davon ausgegangen, dass die einzelnen Auswahlabfragen nur Daten aus jeweils einer Tabelle umfassen.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  2. Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf die Tabelle, in der sich die einzuschließenden Felder befinden. Die Tabelle wird dem Abfrageentwurfsfenster hinzugefügt.

  3. Schließen Sie das Dialogfeld Tabelle anzeigen.

  4. Doppelklicken Sie im Entwurfsfenster Abfrage auf jedem der Felder, die Sie einschließen möchten.
    , Wie Sie Felder auswählen, stellen Sie sicher, dass Sie die gleiche Anzahl von Feldern in derselben Reihenfolge hinzufügen, dass Sie die anderen Auswahlabfragen hinzufügen. Achten Sie hierbei darauf, dass auf die Datentypen der Felder, und stellen Sie sicher, dass sie kompatible Datentypen mit Feldern in derselben Position in der anderen Abfragen haben, die Sie kombinieren. Beispielsweise, wenn Sie die erste Auswahlabfrage fünf Felder verfügt, von denen die erste Datums-/Uhrzeitdaten enthält, stellen Sie sicher, dass alle anderen select Abfragen, die Sie kombinieren auch fünf Felder verfügt, von denen die erste Datums-/Uhrzeitdaten enthält, usw.

  5. Optional fügen Sie Kriterien den Feldern hinzu, indem Sie die entsprechenden Ausdrücke in der Zeile Kriterien des feldrasters eingeben.

  6. Nachdem Sie die Felder und Feldkriterien hinzugefügt haben, sollten Sie die Auswahlabfrage ausführen und deren Ausgabe prüfen. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.

  7. Schalten Sie in die Entwurfsansicht der Abfrage um.

  8. Speichern Sie die Auswahlabfrage, und lassen Sie sie geöffnet.

  9. Wiederholen Sie dieses Verfahren für jede der Auswahlabfragen, die Sie kombinieren möchten.

Weitere Informationen zum Verwenden von Kriterien in einer Abfrage finden Sie unter Anwenden von Abfragekriterien.

Schritt 2: Kombinieren der Auswahlabfragen

In diesem Schritt erstellen Sie die union-Abfrage mithilfe von SQL-Anweisungen aus. (Weitere Informationen finden Sie unter Abschnitt SQL-Syntax .)

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  2. Schließen Sie das Dialogfeld Tabelle anzeigen.

  3. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfrage auf Union.

Access blendet das Abfrage-Designer-Fenster und zeigt die Objektregisterkarte SQL-Ansicht. Die Objektregisterkarte SQL-Ansicht zu diesem Zeitpunkt ist leer.

  1. Klicken Sie für die erste Auswahlabfrage, die Sie mit der Union-Abfrage kombinieren möchten, auf die Registerkarte.

  2. Klicken Sie auf der Registerkarte Start auf Ansicht > SQL-Ansicht.

  3. Kopieren Sie die SQL-Anweisung für die Auswahlabfrage. Klicken Sie auf die Registerkarte für die Union-Abfrage, mit deren Erstellung Sie in Schritt 1 begonnen haben.

  4. Fügen Sie die SQL-Anweisung für die Auswahlabfrage in die Objektregisterkarte der SQL-Ansicht der Union-Abfrage ein.

  5. Löschen Sie das Semikolon (;) am Ende der SQL-Anweisung der Auswahlabfrage.

  6. Drücken Sie die EINGABETASTE, um den Cursor eine Zeile nach unten, und geben Sie in die neue Zeile UNION ein.

  7. Klicken Sie für die nächste Auswahlabfrage, die Sie mit der Union-Abfrage kombinieren möchten, auf die Registerkarte.

  8. Wiederholen Sie die Schritte 5 bis 10, bis Sie alle SQL-Anweisungen für die Auswahlabfragen in das Fenster der SQL-Ansicht der Union-Abfrage eingefügt und kopiert haben. Löschen Sie das Semikolon nicht, oder geben Sie alles, was nach der SQL-Anweisung für die letzten Auswahlabfrage.

  9. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.

Die Ergebnisse der UNION-Abfrage werden in der Datasheet view angezeigt.

Seitenanfang

Tipps für die Arbeit mit Union-Abfragen

  • Damit Sie unterscheiden können, welche Zeilen aus welcher Tabelle stammen, fügen Sie in den einzelnen SELECT-Anweisungen eine Textzeichenfolge als Feld hinzu.

    Fügen Sie Wenn eine Anweisung abruft Felder aus einer Tabelle mit dem Namen Products und anderen select-Anweisung abruft Felder aus einer Tabelle mit dem Namen Dienste die Zeichenfolge "Produkt" als Feld am Ende der ersten Anweisung und "Service hinzu" beispielsweise am Ende der zweiten Anweisung. Sie können auch die Zeichenfolgen ein Feld alias (beispielsweise "Typ") zuweisen, durch das Schlüsselwort AS, wie im folgenden Beispiel gezeigt:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Die Abfrageausgabe ein Feld mit dem Namen "Type", die angezeigt werden, ob die Zeile aus der Tabelle Artikel oder der Tabelle der Dienste stammt.

  • Mit jedem UNION-Schlüsselwort werden die SELECT-Anweisungen kombiniert, die dem Schlüsselwort unmittelbar vorangehen oder unmittelbar hierauf folgen. Wenn Sie in Verbindung mit einigen UNION-Schlüsselwörtern in der Abfrage das Schlüsselwort ALL verwenden, bei anderen jedoch nicht, enthält das Ergebnis die doppelten Zeilen aus den SELECT-Anweisungspaaren, die mithilfe von UNION ALL kombiniert wurden, jedoch keine doppelten Zeilen aus SELECT-Anweisungen, die mit UNION ohne ALL kombiniert wurden.

  • Anzahl, Datentyp und Reihenfolge der Felder in den Auswahlabfragen muss übereinstimmen. Sie können Ausdrücke wie Berechnungen oder Unterabfragen verwenden, um für diese Übereinstimmung zu sorgen.

    So können Sie beispielsweise für Übereinstimmung zwischen einem Feld mit einer zweistelligen Jahresangabe und einem Feld mit einer vierstelligen Jahresangabe sorgen, indem Sie mit der Funktion Rechts die letzten beiden Ziffern der vierstelligen Jahresangabe extrahieren.

Erstellen einer neuen Tabelle anhand der Ergebnisse einer Union-Abfrage

Verwenden Sie die union-Abfrage zunächst als Eingabe für eine neue Auswahlabfrage, und verwenden Sie diese Auswahlabfrage dann als Grundlage für eine Tabellenerstellungsabfrage, wie in den folgenden Schritten dargestellt:

  1. Erstellen und speichern Sie die Union-Abfrage.

  2. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.

  3. Klicken Sie im Dialogfeld Tabelle anzeigen auf die Registerkarte Abfragen.

  4. Doppelklicken Sie auf die Union-Abfrage, und schließen Sie dann das Dialogfeld Tabelle anzeigen.

    Hinweis : Wird in der Statusleiste eine Sicherheitswarnung angezeigt, sind Aktionsabfragen möglicherweise deaktiviert. Klicken Sie zum Aktivieren von Aktionsabfragen in der Statusleiste auf Inhalt aktivieren.

  5. Doppelklicken Sie im Abfrageentwurfsbereich auf der Objektregisterkarte der Union-Abfrage auf den Stern (*), wenn alle Felder der Abfrage für die Erstellung der neuen Tabelle verwendet werden sollen.

  6. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfragetyp auf Tabelle erstellen.

  7. Geben Sie im Dialogfeld Tabelle erstellen einen Namen für die neue Tabelle ein.

  8. Geben Sie optional eine andere Datenbank an, in der die Tabelle erstellt werden soll.

  9. Klicken Sie auf OK.

  10. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.

Erstellen einer vollen äußeren Verknüpfung mithilfe einer Union-Abfrage

Mit einer Union-Abfrage kann eine volle outer join vorgenommen werden. Bei einer vollen äußeren Verknüpfung werden die Zeilen nicht eingeschränkt, die aus jeder der verknüpften Tabellen zurückgegeben werden, sondern auf Basis der Werte im Verknüpfungsfeld kombiniert.

  1. Erstellen Sie eine Abfrage, bei der eine linke äußere Verknüpfung für ein Feld definiert wurde, das Sie für eine volle äußere Verknüpfung verwenden möchten.

  2. Klicken Sie auf der Registerkarte Start in der Gruppe Ansichten auf Ansicht und dann auf SQL-Ansicht.

  3. Drücken Sie zum Kopieren des SQL-Codes STRG+C.

  4. Löschen Sie das Semikolon am Ende der FROM-Klausel, und drücken Sie dann die EINGABETASTE.

  5. Geben Sie UNIONein, und drücken Sie dann die EINGABETASTE.

    Hinweis : Verwenden Sie in Verbindung mit einer Union-Abfrage zur Durchführung einer vollen äußeren Verknüpfung nicht das Schlüsselwort ALL.

  6. Drücken Sie STRG+V, um den in Schritt 3 kopierten SQL-Code einzufügen.

  7. Ändern Sie in dem eingefügten Code LEFT JOIN in RIGHT JOIN.

  8. Löschen Sie das Semikolon am Ende der zweiten FROM-Klausel, und drücken Sie dann die EINGABETASTE.

  9. Fügen Sie eine WHERE-Klausel hinzu, mit der angegeben wird, dass der Wert des Verknüpfungsfelds in der ersten Tabelle, die in der FROM-Klausel aufgeführt wird (der linken Tabelle), NULL ist.

    Wenn die FROM-Klausel beispielsweise wie folgt lautet:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    fügen Sie die folgende WHERE-Klausel hinzu:

    WHERE Products.ID IS NULL

  10. Geben Sie am Ende der WHERE-Klausel ein Semikolon (;) ein, um das Ende der Union-Abfrage anzugeben.

  11. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.
    Die Ergebnisse der Union-Abfrage werden in der Datasheet view angezeigt.

Weitere Informationen finden Sie unter Verknüpfen von Datenquellen in einer Abfrage.

Seitenanfang

Anforderungen und SQL-Syntax für eine Union-Abfrage

Einige Anforderungen für eine Union-Abfrage

  • Die Auswahlabfragen, die Sie in einer Union-Abfrage kombinieren, müssen über die gleiche Anzahl von Ausgabefeldern verfügen, und die Ausgabefelder müssen die gleiche Reihenfolge sowie die gleichen oder kompatible Datentypen aufweisen. Beim Ausführen einer Union-Abfrage werden die Daten aus jedem Satz einander entsprechender Felder in einem Ausgabefeld kombiniert, sodass die Ausgabe der Abfrage über die gleiche Anzahl von Feldern wie jede der SELECT-Anweisungen verfügt.

    Hinweis : Zum Zweck einer Union-Abfrage sind die Datentypen "Zahl" und "Text" kompatibel.

  • Eine Union-Abfrage ist SQL-spezifisch und muss daher direkt in SQL geschrieben werden. Wechseln Sie zur SQL-Ansicht, um SQL-spezifischer Abfragen wie Union-Abfragen zu schreiben.

SQL-Syntax einer Union-Abfrage

In einer Union-Abfrage umfasst jede Auswahlabfrage (auch SELECT-Anweisung genannt) die folgenden Klauseln:

Klausel

Enthält eine Liste mit...

SELECT

Feldern, die Daten enthalten, die abgerufen werden sollen.

FROM

Tabellen, die die betreffenden Felder enthalten.

WHERE (optional)

Kriterien für die betreffenden Felder.

Die SELECT-Anweisungen werden mit dem Schlüsselwort UNION kombiniert.

Die grundlegende SQL-Syntax für eine Union-Abfrage sieht wie folgt aus:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Angenommen, wenn die Datenbank gibt eine Tabelle mit dem Namen Products und einer weiteren Tabelle namens Services und beiden Tabellen Felder, die den Namen des Produkts oder der Dienst, den Preis enthalten Garantie oder Sicherstellen der Verfügbarkeit, und bieten das Produkt oder service ausschließlich. Obwohl die Tabelle Products Garantieinformationen speichert und Informationen zu die Services Tabelle speichern gewährleisten, ist die grundlegende Informationen identisch (gibt an, ob ein bestimmtes Produkt oder Service ein Versprechen Qualität Lieferumfang) aus. Eine union-Abfrage, wie etwa den folgenden, können Sie die vier Felder aus beiden Tabellen kombiniert:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Wir wollen das vorstehende Syntaxbeispiel nun Zeile für Zeile durchgehen:

Syntax

Erklärung

Zusätzliche Informationen

SELECT Name, Preis, Gewährleistung_verfügbar, exklusives_Angebot

Erste SELECT-Klausel

Auf SELECT folgt eine Liste mit Bezeichnern, mit denen Felder angegeben werden, aus denen Daten abgerufen werden sollen.

In einer SELECT-Klausel muss mindestens ein Feld angegeben werden.

Die vorliegende SELECT-Klausel umfasst die Feldbezeichner Name, Preis, Gewährleistung_verfügbar und exklusives_Angebot.

FROM Artikel

Erste FROM-Klausel

Eine FROM-Klausel folgt auf eine SELECT-Klausel, und gemeinsam bilden diese beiden Klauseln die grundlegende SELECT-Anweisung.

Auf FROM folgt eine Liste mit Bezeichnern, die angeben, in welchen Tabellen die Felder enthalten sind, die in der SELECT-Klausel aufgeführt sind.

In einer FROM-Klausel muss immer eine Tabelle angegeben werden.

In der vorliegenden FROM-Klausel wird der Tabellenbezeichner Artikel verwendet.

UNION ALL

Das Schlüsselwort UNION und das optionale Schlüsselwort ALL

Die Ergebnisse der SELECT-Anweisung, die dem Schlüsselwort UNION vorausgeht, werden mit den Ergebnissen der SELECT-Anweisung kombiniert, die auf UNION folgt.

Bei Verwendung des Schlüsselworts ALL werden doppelt vorhandene Zeilen nicht aus den Ergebnissen der Union-Abfrage entfernt.

Durch das Schlüsselwort ALL kann die Abfrage schneller ausgeführt werden, da Access nicht prüfen muss, ob Zeilen doppelt vorhanden sind.

Verwenden Sie das Schlüsselwort ALL, wenn eine der folgenden Bedingungen zutrifft:

  • Sie sind sicher, dass mit der Auswahlabfrage keine doppelt vorhandenen Zeilen zurückgegeben werden.

  • Es ist für Sie unerheblich, ob das Abfrageergebnis doppelte Zeile enthält.

  • Sie möchten die doppelt vorhandenen Zeilen anzeigen.

SELECT Name, Preis, Garantie_verfügbar, exklusives_Angebot

Zweite SELECT-Klausel

Einige Regeln:

  • Die zweite SELECT-Klausel muss dieselbe Anzahl von Feldern aufweisen wie die erste SELECT-Klausel.

  • Felder mit gleichen Daten müssen in der Klausel in der gleichen Reihenfolge auftreten.

  • Felder mit gleichen Daten müssen den gleichen oder einen kompatiblen Datentyp aufweisen.

Hinweis : Die Namen der Felder in der Ausgabe einer Union-Abfrage sind die erste SELECT-Klausel. Ja, werden Daten aus dem Feld "garantie_verfügbar", und das Feld "gewährleistung_verfügbar" in diesem Beispiel "gewährleistung_verfügbar" in die Ausgabe der Abfrage benannt.

FROM Dienstleistungen

Zweite FROM-Klausel

In den FROM-Klauseln einer Union-Abfrage gibt es keine Beschränkungen im Hinblick auf die angegebenen Tabellen. Sie können eine Union-Abfrage erstellen, in der in jeder FROM-Klausel die gleichen Tabellen verwendet werden. In den FROM-Klauseln kann auch jeweils eine unterschiedliche Anzahl von Tabellen angegeben werden. Im vorliegenden Beispiel weisen die FROM-Klauseln nur jeweils eine Tabelle auf.

Seitenanfang

Hinweis : Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×