Wie man eine untergeordnete SELECT-Abfrage in Access

May 16

In jeder Datenbankanwendung, die (SQL = Structured Query Language) verwendet, um Abfragen zu erstellen, ist die Abfrage "Select" das "Arbeitspferd". Alles von einfachen Blick auf komplexe Verknüpfungen und Berechnungen erfolgen über Variationen über die Select-Abfrage. Die Unterauswahl oder Unterabfrage ist eine select-Anweisung, die in einem anderen Auswahlabfrage geschachtelt. Der einfachste Weg zu bauen und zu verstehen, eine untergeordnete select-Abfrage erstellen und Ausführen der Abfrage einzeln, um sicherzustellen, dass Sie die Ergebnisse haben, die Sie wollen und sie dann in eine untergeordnete select-Abfrage kombinieren, beide Teile. In diesem Beispiel wird eine Abfrage, um anzuzeigen, welche Kunden etwas in mehr als 90 Tagen nicht gekauft haben, aufbauen.

Anweisungen

1 Erstellen Sie eine Abfrage zum auswählen und alle Kunden anzeigen. Jede Abfrage in Access erstellen, klicken Sie auf "Abfragen" im Menü Objekt, und klicken Sie dann "Design" oder "Neu" in der Menüleiste. Wenn das Abfragefenster geöffnet wird, klicken Sie auf "Ansicht" und dann "SQL-Ansicht", ein Text-Fenster zu öffnen, die Abfrage eingeben. Geben Sie in der Abfrage, und klicken Sie dann auf das rote Ausrufezeichen zum Ausführen der Abfrage.

Die Syntax lautet wie folgt:

"Wählen Sie Customers.ID, Customers.Company von Kunden"

Dies zeigt alle Kunden-IDs und Firmennamen in der Kunden-Datenbank.

2 Erstellen Sie eine Abfrage, die alle Bestellungen anzeigt, die in den letzten 90 Tagen platziert worden sind. Die Syntax für diese Abfrage sieht folgendermaßen aus:

"Select Orders.OrderID from Bestellungen Where Orders.CustomerID = Kunden.Kunden-ID und Aufträge.Auftragsdatum > Date() - 90)

Diese Abfrage wird nur das Feld "Bestell-Nr" angezeigt, das eine gültige Kunden-ID-Nummer drin und ein Verkauf in den letzten 90 Tagen hat.

3 Die untergeordneten select-Abfrage durch die Kombination dieser zwei Abfragen zu erstellen.

"Customers.ID, Customers.Company von Kunden auswählen, sofern Sie nicht vorhanden ist

(Wählen Sie Orders.OrderID

from Bestellungen

wo Orders.CustomerID = Kunden.Kunden-ID

and Orders.OrderDate > Date() - 90)

Diese Abfrage liefert faktisch alles aus der ersten Abfrage, die in der zweiten Abfrage nicht. Mit anderen Worten zeigt alle Kunden, die in den letzten 90 Tagen nicht alles gekauft haben. Der Schlüssel für die Unterauswahl ist die "wo ist nicht vorhanden" Klausel.

Tipps & Warnungen

  • Unabhängig vom Typ oder Komplexität der Abfrage versuchen Sie zu bauen, immer zu bauen und jedes Teil einzeln zu testen. Dadurch wird viel einfacher zu debuggen.
  • Wenn Sie erstellen Abfragen oder Unterabfragen, die destruktiv, wie z. B. löschen oder Aktualisierungsabfragen, immer testen mit einer select-Abfrage zuerst, damit Sie sicher sind, was Sie fordern, zu löschen oder zu ändern.