BEISPIEL
HINWEIS
HINWEIS
HINWEIS
Abbildung 8.73 Abfrageergebnis
Alle Artikel ermitteln, die mehr als der Durchschnitt kosten.
SELECT
Artikelname, Einzelpreis
FROM
Artikel
WHERE
Einzelpreis > (SELECT AVG(Einzelpreis) FROM Artikel)
ORDER BY
Einzelpreis DESC
Abbildung 8.74 Abfrageergebnis
Möchten Sie bei Berechnungen doppelte Einträge nicht berücksichtigen, können Sie die Abfrage mit DISTINCT
kombinieren.
NULL-Werte
An dieser Stelle ein kleiner Exkurs zum Thema »NULL-Values«, da diese bei Berechnungen oft stiefmütter-
lich behandelt werden bzw. teilweise zu Missverständnissen führen können.
Mit NULL-Werten werden undefinierte Feldeinträge bezeichnet, z.B. wenn nichts eingetragen wurde.
Verwechseln Sie NULL-Werte niemals mit der numerischen Null (0) bzw. einem Leerstring ('')!
Ein NULL-Wert wäre beispielsweise eine fehlende Faxnummer in einem Adressbuch, denn nicht jeder hat
ein Faxgerät bzw. die Faxnummer könnte unbekannt sein.
In Feldern, die Sie als Primary Index verwenden, sind NULL-Werte unzulässig. Sollen trotzdem NULL-Werte
erlaubt sein, verwenden Sie einen eindeutigen Index.
Die Anwendung von NULL-Werten ist nicht immer ganz unproblematisch.
475
Erweiterte SQL-Funktionen
BEISPIEL
Kapitel 8: SQL in Theorie und Praxis
In der Beispieldatenbank finden Sie eine Tabelle
Gewicht
, die aus den Spalten
ID
und
Wert
besteht. Der zwei-
te der drei Datensätze weist einen NULL-Value auf:
Abbildung 8.75 Die Tabelle Gewicht
Ermitteln Sie nun das Durchschnittsgewicht mit
SELECT
SUM(Wert)/COUNT(*) AS Durchschnitt
FROM Gewicht
so erhalten Sie das offensichtlich falsche Resultat 30/3 = 10, da auch der Datensatz mit NULL-Wert in die Be-
rechnung einbezogen wurde. Ermitteln Sie aber den Wert mit
SELECT
SUM(Wert)/COUNT(wert)
FROM Gewicht
so ist das Resultat 30/2 = 15 offensichtlich richtig. Auch die Abfrage
SELECT
AVG(wert)
FROM Gewicht
liefert als Ergebnis 15, da NULL-Values korrekterweise nicht in die Berechnung einbezogen werden.
Wie sich NULL-Werte auf logische Operationen auswirken, zeigen die beiden folgenden Tabellen.
True False NULL
True True False NULL
False False False False
NULL NULL False NULL
Tabelle 8.16 UND-Verknüpfungen
True False NULL
True True True True
False True False NULL
NULL True NULL NULL
Tabelle 8.17 ODER-Verknüpfungen
476

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.