Auswertungen mit Kreuztabellen

Datenbank

Was wäre eine Datenbank ohne Abfragen?

Dabei spielen Auswahlabfragen wohl die Hauptrolle. Wenn es um die Analyse Ihrer Access-Daten geht, stoßen Auswahl ab – fragen aber schnell an ihre Grenzen. Da haben Kreuztabellenabfragen wesentlich mehr zu bieten. Ob Sie Umsatzstatistiken über mehrere Quartale oder Jahre benötigen oder wissen möchten, welche Umsätze die Vertriebsmitarbeiter bei welchen Kunden gemacht haben: alles kein Problem mit Kreuztabellenabfragen. Wir zeigen, wie Ihnen Kreuztabellen bei der Auswertung und Analyse Ihrer Datenbestände helfen.

Was Kreuztabellenabfragen gegenüber Auswahlabfragen auszeichnet, veranschaulicht am besten ein Beispiel.

Inhaltlich geht es in der Beispieldatenbank um Bestellinformationen, die sich aus Bestelldetails wie Bestelldatum und -menge sowie aus Personal-, Kunden- und Artikelinformationen zusammensetzen.

Nehmen Sie für das Beispiel an, dass Sie herausfinden wollen, wie viel Umsatz die Vertreter bei den einzelnen Kunden gemacht haben.

In einer Auswahlabfrage könnten Sie zu diesem Zweck die Mitarbeiter, die Kunden und die Bestellsummen ausgeben lassen. Wenn Sie dabei die Bestellsummen pro Kunde zusammenfassen, erhalten Sie eine Abfrage wie „0_qryBestellsummen“ in der Beispieldatenbank.

So haben Sie zwar die gewünschten Zahlen, besonders übersichtlich ist die Liste aber nicht, da Sie die Umsätze der einzelnen Mitarbeiter kaum miteinander vergleichen können. Ein wesentlich aussagekräftigeres Ergebnis erzielen Sie mit einer Kreuztabellenabfrage, wie die Abfrage „1_qryVertreterumsatz“ beweist.

Die Umsätze der Mitarbeiter lassen sich in diesem Fall auf einen Blick erfassen. Das liegt daran, dass Kreuztabellenabfragen die Spaltenüberschriften dynamisch aus Feldinhalten erzeugen und dann die passenden Werte in das Raster aus Zeilen- und Spaltenüberschriften eintragen. So lassen sich hier die Mitarbeiterumsätze schnell den einzelnen Firmen zuordnen.

Der Aufwand zum Anlegen einer Kreuztabelle ist nicht größer als der für eine Auswahlabfrage. Besonders komfortabel geht es mit dem Kreuztabellenabfrage-Assistenten.

Beachten Sie aber, dass der Assistent eine Datenbasis voraussetzt, die alle Informationen für die Kreuztabelle enthält. Nur selten werden Sie mit einer Tabelle auskommen. Häufiger werden Sie die Datenbasis erst mithilfe einer Auswahlabfrage aus mehreren Tabellen zusammenstellen müssen. Das trifft auch auf die Beispieldatenbank zu. Hier liefert die Abfrage „_qryBestellungen“ die benötigten Werte.

Die folgende Anleitung zeigt, wie Sie den Kreuztabellenabfrage-Assistenten einsetzen, um eine Auswertung wie in der Abfrage „1_qryVertreterumsatz“ anzulegen:

  1. In Access 2003, 2002/XP, 2000 und 97 wechseln Sie auf das Datenbankregister „Abfragen“ und klicken auf die Schaltfläche NEU.
    Beim Einsatz von Access 2007 wechseln Sie in der Multifunktionsleiste auf „Erstellen“ und klicken auf ABFRAGE-ASSISTENT.
  2. Im daraufhin angezeigten Dialogfenster markieren Sie den Eintrag „Kreuztabellenabfrage-Assistent“, was Sie mit OK bestätigen.
  3. Nun bestimmen Sie die Datenbasis für die Kreuztabelle. In diesem Fall aktivieren Sie im Bereich ANZEIGEN zu – nächst die Option ABFRAGEN und dann markieren Sie die Abfrage „_qry Bestellungen“. Anschließend fahren Sie mit einem Klick auf WEI TER fort.
  4. Als nächstes legen Sie die Zeilenüberschriften der Kreuztabelle fest.
    Hier genügen die Inhalte des Feldes „Vertreter“. Doppelklicken Sie auf den Feldnamen, um ihn in die Liste AUSGEWÄHLTE FELDER zu übernehmen. Anschließend klicken Sie auf WEITER.
  5. Markieren Sie das Feld, aus dem die Spaltenüberschriften gebildet werden sollen. Im Beispiel ist es das Feld „Firma“. Danach klicken Sie wieder auf WEITER.
  6. Wählen Sie das Feld aus, das die auszugebenden Werte enthält. Hier sind Sie an der „Bestellsumme“ interessiert. Je nach Feldtyp erscheint rechts neben der Feldliste eine Reihe von FUNKTIONEN, mit denen Sie Berechnungen mit dem Wertefeld anstellen können.
    Im Beispielfall soll die Summe aller Bestellungen pro Vertreter und Firma gebildet werden. Je nach Bedarf aktivieren oder deaktivieren Sie das Kontrollkästchen GESAMTSUMME JEDER ZEILE BERECHNEN. In der Beispielabfrage erhalten Sie so die Gesamtbestellsumme jedes Vertreters.
  7. Nachdem Sie mit WEITER zur letzten Seite des Assistenten gegangen sind, weisen Sie der Abfrage einen Namen zu und klicken schließlich auf FERTIG STELLEN, um sich das Ergebnis anzuschauen.

Natürlich können Sie eine Kreuztabelle auch nachträglich bearbeiten oder ohne den Assistenten erstellen.

Dazu öffnen Sie eine bestehende oder eine neue Ab frage in der Entwurfs an sicht. Bei einer neuen Abfrage müssen Sie zuerst die Datenbasis auswählen und anschließend ABFRAGE-KREUZTABELLENABFRAGE aufrufen.

Zur Veranschaulichung erweitern Sie die Abfrage „1_qryVertreterumsatz“ um eine Gliederung des Umsatzes nach Jahren:

  1. Öffnen Sie „1_qryVertreterumsatz“ in der Entwurfsansicht. Beachten Sie, dass im unteren Bereich die zwei Zeilen „Funktion“ und „Kreuztabelle“ angezeigt werden.
  2. Lassen Sie die Jahresangabe der Bestelldaten in einem neuen Abfragefeld ausgeben, indem Sie in einer neuen Spalte der Zeile „Feld“ Folgendes eingeben:

    Jahr: Jahr([Bestelldatum])

  3. Access setzt die Zeile „Funktion“ automatisch auf den Wert „Gruppierung“. Das ist in Ordnung, da Sie alle Bestellungen eines Jahres zusammenfassen wollen und nicht an den Jahreszahlen jeder einzelnen Bestellung interessiert sind.

Sie müssen nur noch die Verwendung in der „Kreuztabelle“ einstellen. Da zu öffnen Sie die Dropdown-Liste in der entsprechenden Zeile und wählen in diesem Fall „Zeilenüberschrift“ an.

Das Resultat dieser Erweiterung entspricht der Abfrage „2_qry Umsatz ProJahr“ aus der Beispieldatenbank.

Es bietet sich an, die Abfrage „2_qry – UmsatzProJahr“ mit einem Parameter zu versehen, um interaktiv die Umsätze eines bestimmten Jahres abzufragen.

Auch das ist bei Kreuztabellen kein Problem:

  1. Öffnen Sie die gewünschte Abfrage in der Entwurfsansicht.
  2. Erstellen Sie den Abfrageparameter, indem Sie in Access 2003, 2002/XP, 2000 oder 97 das Menü ABFRAGEPARAMETER aufrufen. In Access 2007 klicken Sie auf EINBLENDEN/AUSBLENDEN-PARAMETER.
  3. Geben Sie in der Spalte „Parameter“ die Bezeichnung ein, die in der Eingabeaufforderung erscheinen soll – beispielsweise „Welches Jahr?“ – und wählen Sie rechts daneben den geeigneten „Felddatentyp“ aus – zum Beispiel „Integer“. Klicken Sie auf OK, um das Dialogfenster wieder zu schließen.
  4. In einer neuen Feldspalte des Abfrageentwurfs definieren Sie nun das Feld oder den Ausdruck, auf das/den sich der Abfrageparameter beziehen soll. Um das Jahr der Bestellungen einzugrenzen, geben Sie folgenden Ausdruck ein:Jahr([Bestelldatum])
  5. Da Sie den Ausdruck nicht zum Gruppieren verwenden wollen, ändern Sie die Auswahl aus der Zeile „Funktion“ in „Bedingung“.
  6. Geben Sie die in Schritt 3 verwendete Parameterbezeichnung in die Zeile „Kriterien“ ein. Schließen Sie den Text in eckige Klammern ein, damit er als Parameter erkannt wird.

Wenn Sie die Abfrage jetzt in der Datenblattansicht öffnen, fragt Access zuerst den Parameter ab.

Geben Sie im Beispiel eine Jahreszahl zwischen „1999“ und „2002“ ein, um sich anschließend die entsprechenden Jahresumsätze ausgeben zu lassen.

Bislang haben Sie immer die Inhalte eines Feldes als Spaltenüberschriften der Kreuztabelle verwendet. Sie können aber auch Ausdrücke als Spaltenüberschriften einsetzen.

Schauen Sie sich dazu die folgende Abbildung an:

Die Spaltenüberschriften geben Intervalle über die Höhe des Bestellvolumens an. Die Werte in der Tabelle selbst sagen aus, wie viele Bestellungen ein Kunde im Bereich zwischen „0 – 100 €“, „100 – 500 €“ usw. getätigt hat.

Wie Sie eine solche Kreuztabellenauswertung erstellen, sehen Sie im Entwurf der Abfrage „4a_qryBestellvolumen“.

Die Felder „Firma“ und „Bestellsumme“ werden in gewohnter Weise als Zeilenüberschrift bzw. Wert eingesetzt. Neu ist hier nur, dass Sie nicht die „Summe“, sondern die „Anzahl“ der Bestellsummen ausgeben lassen.

Die Spaltenüberschriften legen Sie mit einem Ausdruck fest, in dem Sie die Funktion „Schalter“ einsetzen. Die Funktion wertet ihre Argumente paarweise aus:

Der erste Teil entspricht einer Bedingung, die überprüft wird, der zweite Teil ist der Rückgabewert, sofern die Bedingung zutrifft. Gibt es keine Übereinstimmung, wird das nächste Argumenten paar ausgewertet. Auf diese Weise ordnen Sie die Werte der Kreuztabelle genau definierten Intervallen zu.

Als Spaltenüberschriften werden dann die Textwerte „0 – 100 €“, „100 – 500 €“ usw. ausgegeben. Wenn Sie sich die Abfrage „4a_qry Bestellvolumen“ in der Datenblattansicht anschauen, werden Sie schnell ein Manko entdecken:

Die Sortierung der Spaltenüberschriften entspricht nicht der mathematischen Logik.

Das liegt daran, dass Access die Werte immer in Form von Text sortiert und somit die Spalte „1000 – 2000 €“ vor die Spalte „500 – 1000 €“ stellt.

Abhilfe schafft ein manuelles Bearbeiten der Spaltenüberschriften, das Sie wie folgt erreichen:

1. Öffnen Sie die Abfrage, die Sie ändern wollen, in der Entwurfsansicht.

2. Klicken Sie eine freie Fläche im oberen (grauen) Entwurfsbereich mit der rechten Maustaste an und wählen Sie im Kontextmenü den Befehl EIGENSCHAFTEN an.

3. Im Dialogfenster mit den Abfrageeigenschaften geben Sie in das Feld FIXIERTE SPALTENÜBERSCHRIFTEN die Überschriften in der passenden Reihenfolge ein. Sie müssen die Werte jeweils als Text in Anführungszeichen und durch Semikolons getrennt eintragen.

In der Beispieldatenbank können Sie sich die Korrekturen in der Abfrage „4b_qry – Bestellvolumen“ anschauen.

Mit fixierten Spaltenüberschriften können Sie außerdem dafür sorgen, dass eine Kreuztabelle immer die gleiche Anzahl an Spalten umfasst. Access unterschlägt ansonsten Spalten, denen keine Werte zuzuordnen sind.

Wenn es zum Beispiel gar keine Bestellungen gibt, deren Höhe zwischen 0 und 100 Euro liegt, zeigt Access die Spalte in der Abfrage „4a_qry Bestellvolumen“ trotz des Intervalls aus der „Schalter“- Funktion nicht an.

Wie Sie an den Beispielen gesehen haben, lohnt es sich, Kreuztabellen abfragen etwas näher unter die Lupe zu nehmen. Die Auswertungen Ihrer Datenbestände werden sicherlich davon profitieren.

Aussagekräftige Beschriftungen in Ihren Abfragen

Wenn Sie sich das Ergebnis einer Abfrage anzeigen lassen, sind die Spaltenüberschriften in der Datenblattansicht häufig wenig verständlich: Niemand kommt beispielsweise bei „IDNtzT“ auf die Idee, dass es sich hier um eine Identifikationsnummer für den Typ von Notizen handelt.

Das liegt daran, dass Access bei Abfragen einfach nur den Feldnamen verwendet.

Wenig bekannt ist die Tatsache, dass Sie auch aussagekräftigere Beschriftungen verwenden können.

Access stellt zu diesem Zweck im Abfrageentwurf entsprechende Einstellmöglichkeiten bereit, die allerdings etwas versteckt sind:

  1. Klicken Sie im Abfrageentwurf mit der rechten Maustaste in der Spalte eines Feldes in eine beliebige Zeile und wählen Sie das Kontextmenü EIGENSCHAFTEN an.
  2. Geben Sie im daraufhin angezeigten Dialog „Feldeigenschaften“ in der Eigenschaft „Bezeichnung“ bzw. Beschriftung den Text ein, der als Spaltenüberschrift in der Datenblattansicht angezeigt werden soll, also beispielsweise „Typ der Notiz“.
  3. Gleichzeitig können Sie in der Eigenschaft „Beschreibung“ einen Kommentar eingeben, der dann bei künftigen Änderungen von Nutzen sein könnte.

    So werden Sie sich in ein paar Monaten beispielsweise kaum noch daran erinnern können, dass ID „0“ für private, ID „1“ für geschäftliche oder ID „2“ für sonstige Notizen steht. Mit einem entsprechenden Kommentar in dieser Eigenschaft können Sie bei Bedarf kurz nachschlagen.

  4. Ordnen Sie wie oben erläutert weitere Bezeichnungen anderen erklärungsbedürftigen Feldnamen zu.
  5. Blenden Sie das Eigenschaftenfenster dann wieder aus.

Wenn Sie die Abfrage nun ausführen lassen, werden in der Datenblattansicht aussagekräftige Bezeichnungen als Spaltenüberschriften angezeigt.

Mit diesen Einstellmöglichkeiten lässt sich gleichzeitig die Auswahl in Kombinations- und Listenfeldern vereinfachen: Dort können Sie über die Einstellung der Eigenschaft „Spaltenüberschriften“ auf „Ja“ in mehrspaltigen Kombinationsfeldern und Listen für mehr Übersicht sorgen.

Hier werden die im Abfrageentwurf zugeordneten Bezeichnungen angezeigt und machen so deutlich, welche Informationen in den einzelnen Spalten abzulesen sind.

Abfragen nach Monaten ausgeben (Format-Befehl)

Zeitraum: Format([Bestelldatum];“mm/jjjj“)

Zeitraum = Ausgedachter Name der Spalte von der Abfrage

[Bestelldatum] = Feldname eines Datumfeldes

mm = Monat

jjjj = Jahr


Die Sortierung ist aber nach Ziffern, und nicht nach Datum:

01/2000
01/2001
01/2003
02/2001
02/2003
03/2000
usw.

Möchten Sie, das die Sortierung nach Datum verläuft…

01/2000
03/2000
01/2001
02/2001
01/2003
02/2003
usw.

… gilt folgender Befehl:

Zeitraum: DatSeriell(Jahr([Bestellungen].[Bestelldatum]);Monat([Bestellungen].[Bestelldatum]);1)

[Bestellungen].[Bestelldatum] = Das Feld Bestelldatum in der Tabelle Bestellungen

Tabellen importieren

Importiert die Tabelle „Audit“ von der Datenbank „Audittransfer.mdb“ in die Datenbank als Tabelle „Audit“

DoCmd.TransferDatabase acImport, „Microsoft Access“, „C:\Daten\audittransfer.mdb“, acTable, „Audit“, „Audit“

Versteckte Objekte wieder sichtbar machen

Frage:

Objekte im Datenbankfenster auszublenden ist ja kein Problem. Man klickt die entsprechenden Einträge einfach mit der rechten Maustaste an, ruft das Kontextmenü EIGENSCHAFTEN auf und schaltet das Kontrollkästchen AUSGEBLENDET ein. Nun stellt sich allerdings die Frage: Wie macht man die Objekte wieder sichtbar?

Antwort:

Die Bedienung von Access ist in diesem Punkt leider nicht besonders intuitiv. Die meisten Anwender versuchen, über Kontextmenüs im Datenbankfenster zum Erfolg zu kommen. Tatsächlich müssen Sie das Menü EXTRAS-OPTIONEN anwählen, auf die Registerkarte „Ansicht“ wechseln und das Kontrollkästchen AUSGEBLENDETE OBJEKTE aktivieren. Danach sind die versteckten Objekte wieder sichtbar; Sie können sie aufrufen und auf Wunsch bearbeiten. Um zu erreichen, dass die Objekte auch ohne das Aktivieren dieser Option wieder sichtbar sind, können Sie sie mit der rechten Maustaste anklicken, das Kontextmenü EIGENSCHAFTEN aufrufen und das Kontrollkästchen AUSGEBLENDET wieder ausschalten.

SQL-Anweisungen im Überblick

Im Folgenden stellen wir Ihnen nun die wichtigsten SQL-Anweisungen für den Einsatz in Ihren Datenbank mit praktischen Beispielen vor. Sie können einzelne Anweisungen mithilfe unserer Erweiterung „SQL-Eingabe“ (siehe Seite 6) oder per VBA im Direktfenster direkt in der Beispieldatenbank zu diesem Beitrag ausprobieren.

Datensätze auswählen
Um Datensätze aus einer Tabelle zu selektieren und beispielsweise einem Recordset zuzuweisen, verwenden Sie „SELECT“. Sie können entweder den kompletten Datensatz mit Angabe des Sternchens „*“ oder einzelne Felder durch Angabe einer Namensliste auswählen:

SELECT * | Feldliste FROM
Tabellenname
WHERE Bedingung
GROUP BY Feldname
ORDER BY Feldliste ADC  | DESC;

„Tabellenname“ definiert die Tabelle, aus der Datensätze selektiert werden sollen. Die folgende Anweisung liefert beispielsweise alle Felder und alle Datensätze aus der Tabelle „Adressen“:

SELECT * FROM Adressen;

Über „WHERE“ können Sie eine Bedingung prüfen und so nur bestimmte Datensätze selektieren, die zum Beispiel wie in der folgenden Anweisung im Feld „Land“ den Inhalt „Belgien“ aufweisen:

SELECT * FROM Kunden
WHERE Land = ‚Belgien‘;

Mit „GROUP BY“ lassen sich Datensätze, die im Feld „Feldname“ gleiche Inhalte aufweisen, gruppieren. Die folgende Anweisung, die sich zum Beispiel der Eigenschaft „Datensatzherkunft“ eines Kombinationsfeldes zuweisen lässt, liefert eine alphabetisch sortierte Auswahl aller bisher verwendeten Länder aus der Tabelle „Adressen“:

SELECT Land FROM Adressen
GROUP BY Land ORDER BY Land;

„ORDER BY“ erlaubt schließlich die Sortierung nach einem oder mehreren der selektierten Felder. Die folgende Anweisung sortiert das Abfrageergebnis nach dem Feld „Umsatz“:

SELECT Firma, Umsatz FROM Lieferanten
ORDER BY Umsatz;

Für jedes Feld können Sie mit „ASC“ bzw. „DESC“ eine aufsteigende oder absteigende Sortierung festlegen. Mit der folgenden Anweisung erhalten Sie eine absteigend sortierte Umsatzübersicht, bei gleichen Umsatzzahlen wird nach dem Nachnamen aufsteigend sortiert:

SELECT * FROM Kunden
ORDER BY Umsatz DESC, Nachname
ASC;

Feldinhalte aktualisieren
Mit „UPDATE“ ändern Sie die Inhalte einzelner Felder in Datensätzen einer Tabelle:

UPDATE Tabellenname
SET Feldname=Ausdruck
WHERE Bedingung;

„Tabellenname“ legt die Tabelle fest, in der Datensätze aktualisiert werden sollen. Über den Parameter „Feldname“ bestimmen Sie das Feld, dessen Inhalt zu ändern ist. „Ausdruck“ ist entweder eine Konstante oder eine Berechnung. Die folgenden Anweisungen setzen zum Beispiel das Ja/Nein-Feld „Mailingaktion“ aller Datensätze der Tabelle „Kunden“ auf „Nein“ oder erhöhen alle Inhalte des Feldes „VKPreis“ um 5%:

UPDATE Kunden
SET Mailingaktion = No;
UPDATE Artikel
SET VKPreis = VKPreis * 1.05;

Nutzen Sie „WHERE“, um eine Bedingung zu definieren und so nur bestimmte Datensätze zu aktualisieren. Mit der folgenden Anweisung wird für alle Lieferanten, bei denen ein Umsatz von mehr als 10.000 Euro erzielt wurde, ein Rabatt von 15% für die Artikel der Warengruppe „Schokolade“ eingetragen:

UPDATE Lieferanten
SET Rabatt = 15
WHERE Umsatz > 10000 And
Warengruppe = ‚Schokolade‘;

 

Datensätze löschen
Zum Löschen von Datensätzen aus einer Tabellen nutzen Sie die Anweisung „DELETE“. Die Tabelle selbst bleibt erhalten:

DELETE * FROM Tabellenname
WHERE Bedingung;

„Tabellenname“ definiert die Tabelle, aus der Datensätze gelöscht werden sollen. Die folgende Anweisung löscht alle Datensätze aus der Tabelle „Bestellungen“:

DELETE * FROM Bestellungen;

Über „WHERE“ können Sie eine Bedingung prüfen und so nur bestimmte Datensätze löschen, bei denen z. B. der Umsatz unterhalb einer bestimmten Grenze liegt oder der letzte Besuch durch den Außendienst bereits mehrere Jahre zurückliegt:

DELETE * FROM Lieferanten
WHERE BestellungWert < 10000;
DELETE * FROM Kunden
WHERE Year([LetzterBesuch]) <= 2000;

 

Tabellen zusammenführen
Verwenden Sie „INSERT INTO“, um die Inhalte einer Tabelle zu einer anderen Tabelle hinzuzufügen. Dabei ist es möglich, nur einzelne Felder oder komplette Datensätze zu übertragen:

INSERT INTO Tabelle1 (Zielfelder)
SELECT *|Quellfelder FROM Tabelle2
WHERE Bedingung;

Die folgende Anweisung überträgt alle Datensätze aus einer Tabelle „Neue Adressen“ in eine Haupttabelle „Adressen“:

INSERT INTO Adressen
SELECT * FROM NeueAdressen;

Wenn Sie lediglich die Inhalte einzelner Felder übertragen möchten, spezifizieren Sie die Feldnamen für das Ziel in runden Klammern. Die Feldnamen im „SELECT“- Teil geben Sie ohne runde Klammern an. Die Namen der Quell- und Zielfelder können voneinander abweichen, aber die Datentypen müssen übereinstimmen! Die folgende Anweisung überträgt nur die Inhalte der Felder „NachnameNeu“ und „VornameNeu“ aus der Tabelle „Neue Adressen“ in die Felder „Nachname“ und „Vorname“ der Tabelle „Adressen“:

INSERT INTO Adressen (Nachname, Vorname)
SELECT NachnameNeu, VornameNeu
FROM NeueAdressen;

Mit „WHERE“ können Sie eine Bedingung prüfen und so nur bestimmte Feldinhalte oder Datensätze übertragen. In diesem Beispiel werden nur die Datensätze übertragen, bei denen das Feld „Land“ den Inhalt „Deutschland“ aufweist:

INSERT INTO Adressen SELECT *
FROM NeueAdressen
WHERE Land = ‚Deutschland‘;

 

 

Spezielle Operatoren für Kriterien nutzen
In SQL-Anweisungen können Sie also die Auswahl der Datensätze über eine „WHERE“-Klausel einschränken:

INSERT INTO Adressen SELECT *
FROM NeueAdressen
WHERE Land = ‚Deutschland‘;
UPDATE Lieferanten SET Rabatt = 10
WHERE Umsatz > 10000;
DELETE * FROM Lieferanten
WHERE Bestellungen < 100;
SELECT * FROM Kunden
WHERE Land <> ‚Deutschland‘;

In den meisten Fällen verwenden Sie dabei für Ihre Bedingungen die Standardoperatoren „=“ (gleich), „<“ (kleiner), „>“ (größer) oder „<>“ (ungleich). Daneben gibt es noch verschiedene Operatoren, mit denen sich Kriterien einfacher und übersichtlicher formulieren lassen.

 

Werte innerhalb von Bereichen prüfen
Mit „BETWEEN“ können Sie zum Beispiel leicht feststellen, ob ein Feldinhalt innerhalb bestimmter Grenzwerte liegt:

Feldname [NOT] BETWEEN Startwert
AND Endwert

„Feldname“ legt das Feld fest, dessen Inhalt in dem über „Startwert“ und „Endwert“ definierten Bereich liegen soll. Die folgende Anweisung selektiert nur die Lieferanten, bei denen der Umsatz im Bereich von 10.000 Euro bis 19.999 Euro liegt:

SELECT * FROM Lieferanten
WHERE Umsatz BETWEEN 10000 AND 19999;

Werteübereinstimmung prüfen Der Operator „IN“ erleichtert die Selektion von Datensätzen, die fest definierten Kriterien entsprechen müssen. So lassen sich zum Beispiel Bestellungen von Kunden der Benelux-Staaten einfacher und übersichtlicher selektieren: Beispielsweise für die Auswahl der Kunden aus den Benelux-Ländern: Numerische Werte oder Zahlen verwenden Sie ohne Anführungszeichen:

 

Werteübereinstimmung prüfen
Der Operator „IN“ erleichtert die Selektion von Datensätzen, die fest definierten Kriterien entsprechen müssen. So lassen sich zum Beispiel Bestellungen von Kunden der Benelux-Staaten einfacher und übersichtlicher selektieren:

Feldname IN (Wert1, Wert2, Wert3…)

Beispielsweise für die Auswahl der Kunden aus den Benelux-Ländern:

SELECT * FROM Bestellungen
WHERE Land IN (‚Belgien‘, ‚Niederlande‘, ‚Luxemburg‘);

Numerische Werte oder Zahlen verwenden Sie ohne Anführungszeichen:

SELECT * FROM Artikel
WHERE Warengruppe IN (400, 378, 127, 12, 47);

 

 

Feldinhalte mit Suchmuster überprüfen
Mithilfe von „LIKE“ können Sie Datensätze anhand eines Suchmusters selektieren. Der Suchbegriff darf dann nur teil weise im Feld enthalten sein, damit die Bedingung als erfüllt angesehen wird:

LIKE Ausdruck

So können Sie beispielsweise mit „LIKE ‘04*’“ alle Kunden mit Vorwahl im norddeutschen Raum oder mit „Like ‘*Hamburg*’“ alle Kunden auswählen, die in „Hamburg“ wohnen, auch wenn in das Feld „Ort“ zum Beispiel „Hamburg-Harburg“ oder „Bahrenfeld bei Hamburg“ eingetragen wurde:

SELECT Nachname, Vorname, Telefon
FROM Kunden
WHERE Left$(Telefon,2)= ’04*‘;
SELECT * FROM Adressen
WHERE Ort Like ‚*Hamburg*‘;

Das Sternchen „*“ steht als Platzhalter für beliebige Zeichen, sodass es z. B. bei „‘*Hamburg*’“ keine Rolle spielt, an welcher Position sich der Begriff im Feld befindet. Bei „‘04*’“ muss der Feldinhalt hingegen mit „04“ beginnen.