Unterabfragen in der WHERE-Klausel funktionieren als Teil des Zeilenauswahlprozesses. Sie benutzen eine Unterabfrage in der WHERE-Klausel, wenn die Kriterien, die Sie für die Auswahl der Zeilen verwenden, von den Ergebnissen einer anderen Tabelle abhängen.
Sie suchen die Produkte, deren Lagermengen weniger als das Doppelte der durchschnittlich bestellten Menge betragen.
SELECT Name, Description FROM Products WHERE Quantity < 2 * ( SELECT AVG( Quantity ) FROM SalesOrderItems ); |
Dies ist eine Abfrage in zwei Schritten: Zuerst wird die durchschnittliche Anzahl der Artikel pro Bestellung ermittelt und dann wird gesucht, welche Produkte weniger als das Doppelte dieser Menge betragen.
Die Spalte "Quantity" der Tabelle "SalesOrderItems" speichert die Anzahl der Artikel, die pro Artikeltyp, Kunde und Bestellung angefordert werden. Die Unterabfrage lautet wie folgt:
SELECT AVG( Quantity ) FROM SalesOrderItems; |
Sie gibt die durchschnittliche Menge der Artikel in der Tabelle "SalesOrderItems" zurück, und zwar 25,851413.
Die nächste Abfrage gibt die Namen und Beschreibungen der Artikel zurück, deren Lagermengen weniger als doppelt so hoch sind wie der vorher abgefragte Wert.
SELECT Name, Description FROM Products WHERE Quantity < 2*25.851413; |
Mit einer Unterabfrage werden die beiden Schritte in einem einzigen Vorgang zusammengefasst.
Eine Unterabfrage in der WHERE-Klausel ist Teil einer Suchbedingung. In Kapitel Daten abfragen finden Sie eine Beschreibung von einfachen Suchbedingungen, die Sie in der WHERE-Klausel verwenden können.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |