UNION-Operation (Microsoft Access SQL)
Gilt für: Access 2013, Office 2013
Erstellt eine Union-Abfrage, in der die Ergebnisse von mindestens zwei unabhängigen Abfragen oder Tabellen miteinander kombiniert werden.
Syntax
[TABLE] Abfrage1 UNION [ALL] [TABLE] Abfrage2 [UNION [ALL] [TABLE] AbfrageN [ … ]]
Die UNION-Operation enthält die folgenden Bestandteile:
Part |
Beschreibung |
---|---|
Abfrage1-n |
Eine SELECT-Anweisung, der Name einer gespeicherten Abfrage oder der Name einer gespeicherten Tabelle, der das Schlüsselwort TABLE vorangestellt ist. |
Bemerkungen
Sie können die Ergebnisse von zwei oder mehr Abfragen, Tabellen und SELECT-Anweisungen in jeder beliebigen Kombination in einer einzelnen UNION-Operation zusammenführen. The following example merges an existing table named New Accounts and a SELECT statement:
TABLE [New Accounts] UNION ALL
SELECT *
FROM Customers
WHERE OrderAmount > 1000;
Standardmäßig werden keine doppelten Datensätze zurückgegeben, wenn Sie einen UNION-Vorgang verwenden. Sie können jedoch das ALL-Prädikat einschließen, um sicherzustellen, dass alle Datensätze zurückgegeben werden. Dadurch wird die Abfrage auch schneller ausgeführt.
Alle Abfragen in einer UNION-Operation müssen dieselbe Anzahl von Feldern anfordern. Doch die Felder müssen nicht dieselbe Größe oder denselben Datentyp besitzen.
Verwenden Sie Aliase nur in der ersten SELECT-Anweisung, da sie in anderen Anweisungen ignoriert werden. In der ORDER BY-Klausel verweisen Sie auf ein Feld unter dem Namen, der in der ersten SELECT-Anweisung verwendet wird.
Hinweis
Beispiel
In diesem Beispiel werden die Namen und Städte aller Händler und Kunden in Brasilien abgerufen. Dabei wird die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.
Sub UnionX()
Dim dbs As Database, rst As Recordset
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Retrieve the names and cities of all suppliers
' and customers in Brazil.
Set rst = dbs.OpenRecordset("SELECT CompanyName," _
& " City FROM Suppliers" _
& " WHERE Country = 'Brazil' UNION" _
& " SELECT CompanyName, City FROM Customers" _
& " WHERE Country = 'Brazil';")
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 12
dbs.Close
End Sub