Mit einer Kreuztabellenabfrage können Sie dafür sorgen, dass Zusammenfassungsdaten in Access einfacher zu lesen und zu verstehen sind. Kreuztabellenabfragen berechnen eine Summe, einen Mittelwert oder eine andere Aggregatfunktion und gruppieren die Ergebnisse in zwei Wertesätzen – einem Satz entlang der Seite des Datenblatts und einem weiteren Satz entlang dem oberen Rand. Klicken Sie im Menüband auf Erstellen, und klicken Sie dann in der Gruppe Abfragen auf Abfrage-Assistent. Doppelklicken Sie im Dialogfeld Neue Abfrage auf Kreuztabellen-Abfrageassistent.
Wenn ein Satz Überschriften Datumswerte enthält, hilft Ihnen der Assistent dabei, die Daten in Intervalle, wie zum Beispiel Monate oder Quartale, zu gruppieren.
Inhalt dieses Artikels
-
Erstellen einer Kreuztabellenabfrage mit dem Kreuztabellenabfrage-Assistenten
-
Auffordern zur Eingabe eines Parameters zur Einschränkung von Zeilenüberschriften
Hinweis: Kreuztabellenabfragen sind in Access-Web-Apps nicht verfügbar und werden in einer Webdatenbank nur teilweise unterstützt. Von Webobjekten können sie nicht verwendet werden.
Übersicht
Eine Kreuztabellenabfrage ist eine Art Auswahlabfrage. Wenn Sie eine Kreuztabellenabfrage ausführen, werden die Ergebnisse in einem Datenblatt angezeigt, dessen Struktur sich von derjenigen anderer Datenblatttypen unterscheidet.
Dank ihrer Struktur kann eine Kreuztabellenabfrage leichter als eine einfache Auswahlabfrage gelesen werden, in der dieselben Daten angezeigt werden, wie in der nachstehenden Abbildung zu sehen ist.
1. Bei einer Auswahlabfrage werden zusammenfassende Daten vertikal nach Mitarbeiter und Kategorie gruppiert.
2. In einer Kreuztabellenabfrage können dieselben Daten angezeigt werden, sind aber sowohl horizontal als auch vertikal gruppiert. Dadurch kann das Datenblatt kompakter und einfacher zu lesen sein.
Wenn Sie eine Kreuztabellenabfrage erstellen, geben Sie an, welche Felder Zeilenüberschriften enthalten, welches Feld Spaltenüberschriften enthält und welches Feld die zu zusammenfassenden Werte enthält. Sie können jeweils nur ein Feld verwenden, wenn Sie Spaltenüberschriften und -werte angeben, die zusammengefasst werden sollen. Sie können bis zu drei Felder verwenden, wenn Sie Zeilenüberschriften angeben.
Zeilenüberschriften, Spaltenüberschriften und zusammenzufassende Werte können auch mithilfe eines Ausdrucks erstellt werden. Weitere Informationen finden Sie unter SQL-Aggregatfunktionen.
1. Eine, zwei oder drei Spalten auf dieser Seite enthalten Zeilenüberschriften. Die Namen der Felder, die als Zeilenüberschriften verwendet werden, werden in der obersten Zeile dieser Spalten angezeigt.
2. Hier werden die Zeilenüberschriften angezeigt. Die Anzahl der Zeilen im Kreuztabellendatenblatt kann schnell anwachsen, wenn Sie mehrere Felder für Zeilenüberschriften verwenden, da jede Kombination von Zeilenüberschriften angezeigt wird.
3. Die Spalten auf dieser Seite enthalten Spaltenüberschriften und Zusammenfassungswerte. Beachten Sie, dass der Name des Spaltenüberschriftsfelds in dem Datenblatt nicht angezeigt wird.
4. Hier werden Zusammenfassungswerte angezeigt.
Methoden zum Erstellen einer Kreuztabellenabfrage
Verwenden des Kreuztabellenabfrage-Assistenten Der Kreuztabellenabfrage-Assistent ist in der Regel das schnellste und einfachste Verfahren zum Erstellen einer Kreuztabellenabfrage. Er erledigt die meisten Arbeiten für Sie, doch gibt es ein paar Optionen, die der Assistent Ihnen nicht bieten kann.
Der Assistent bietet folgende Vorteile:
-
Er ist benutzerfreundlich. Wenn Sie den Assistenten verwenden möchten, starten Sie ihn, und beantworten Sie dann eine Reihe von interaktiven Fragen.
-
Er kann Datumswerte automatisch in Intervalle gruppieren. Wenn Sie ein Feld mit Datums-/Uhrzeitdaten für Spaltenüberschriften verwenden, hilft Ihnen der Assistent auch beim Gruppieren der Datumswerte in Intervalle, z. B. Monate oder Quartale.
Tipp: Wenn Sie Werte aus einem Feld vom Typ "Datum/Uhrzeit" für Spaltenüberschriften verwenden, die Datumswerte aber in Intervalle gruppieren möchten, die der Assistent nicht bietet, z. B. Geschäftsjahr oder Zweijahreszeitraum, verwenden Sie zum Erstellen Ihrer Abfrage nicht den Assistenten. Erstellen Sie die Kreuztabellenabfrage stattdessen in der Entwurfsansicht und verwenden Sie einen Ausdruck zum Erstellen der Intervalle.
-
Er kann als Ausgangspunkt verwendet werden. Sie können zunächst mithilfe des Assistenten die gewünschte Basis-Kreuztabellenabfrage erstellen und dann den Entwurf in der Entwurfsansicht optimieren.
Bei Verwendung des Assistenten ist Folgendes jedoch nicht möglich:
-
Mehr als eine Tabelle oder Abfrage als Datenherkunft verwenden.
-
Einen Ausdruck zum Erstellen von Feldern verwenden.
-
Eine Aufforderung zur Eingabe von Parametern hinzufügen.
-
Eine Liste mit festen Werten angeben, die als Spaltenüberschriften verwendet werden sollen.
Im nächsten Schritt des Assistenten können Sie auswählen, dass Sie die Abfrage in der Entwurfsansicht ändern möchten. Dadurch können Sie ihr Entwurfselemente hinzufügen, die der Assistent nicht unterstützt, z. B. zusätzliche Datensatzquellen.
Arbeiten in der Entwurfsansicht In der Entwurfsansicht können Sie Ihren Abfrageentwurf besser steuern. Diese Ansicht unterstützt die Funktionen, die im Assistenten nicht zur Verfügung stehen.
Erwägen Sie das Erstellen einer Kreuztabellenabfrage in der Entwurfsansicht, wenn Sie Folgendes möchten:
-
Den Vorgang besser steuern können. Der Assistent trifft einige Entscheidungen für Sie.
-
Mehr als eine Tabelle oder Abfrage als Datensatzquelle verwenden.
-
Ihrer Abfrage eine Aufforderung zur Eingabe von Parametern hinzufügen.
-
In Ihrer Abfrage Ausdrücke als Felder verwenden.
-
Eine Liste mit festen Werten angeben, die als Spaltenüberschriften verwendet werden sollen.
-
Die Verwendung des Entwurfsbereichs üben.
Schreiben einer Abfrage in der SQL-Ansicht Sie können eine Kreuztabellenabfrage auf Wunsch in der SQL-Ansicht schreiben. Allerdings können Sie in der SQL-Ansicht keine Parameterdatentypen angeben. Wenn Sie in einer Kreuztabellenabfrage einen Parameter verwenden möchten, müssen Sie dessen Datentyp angeben, indem Sie Ihre Abfrage in der Entwurfsansicht ändern.
Tipp: Denken Sie daran – Sie sind nicht darauf beschränkt, eine Kreuztabellenabfrage mit nur einer einzigen Methode zu erstellen. Sie können die Abfrage mithilfe des Assistenten erstellen und dann den Abfrageentwurf in der Entwurfsansicht ändern.
Erstellen einer Kreuztabellenabfrage mit dem Kreuztabellenabfrage-Assistenten
Wenn Sie den Kreuztabellen-Abfrageassistenten verwenden, müssen Sie eine einzelne Tabelle oder Abfrage als Datensatzquelle für die Kreuztabellenabfrage verwenden. Falls eine einzelne Tabelle nicht alle Daten enthält, die Sie in der Kreuztabellenabfrage berücksichtigen möchten, erstellen Sie zunächst eine Auswahlabfrage, die die gewünschten Daten zurückgibt. Weitere Informationen zum Erstellen einer Auswahlabfrage finden Sie im Abschnitt Siehe auch.
In diesem Beispiel erstellen wir eine Kreuztabellenabfrage und verwenden dazu die Tabelle "Artikel" aus der Northwind-Beispieldatenbank. Wir möchten die Anzahl der Artikel in jeder Kategorie von allen Lieferanten anzeigen.
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrage-Assistent.
-
Klicken Sie im Dialogfeld Neue Abfrage auf Kreuztabellen-Abfrageassistent und dann auf OK.
Der Kreuztabellen-Abfrageassistent wird aufgerufen.
-
Wählen Sie auf der ersten Seite des Assistenten die Tabelle oder Abfrage aus, mit der Sie eine Kreuztabellenabfrage erstellen möchten. Wählen Sie in diesem Beispiel die Tabelle Artikel aus, und klicken Sie auf Weiter.
-
Wählen Sie auf der nächsten Seite das Feld aus, das die Werte enthält, die als Zeilenüberschriften verwendet werden sollen. Sie können maximal drei Felder auswählen, die als Quellen für Zeilenüberschriften fungieren sollen. Je weniger Zeilenüberschriften Sie jedoch verwenden, um so einfacher lesbar ist das Kreuztabellendatenblatt. Falls Sie mehrere Felder zum Bereitstellen von Zeilenüberschriften auswählen, bestimmt die Reihenfolge, in der Sie die Felder auswählen, die Standardreihenfolge, in der die Ergebnisse sortiert werden.
Wählen Sie beispielsweise LieferantenNr.Wert aus, und klicken Sie dann auf die Schaltfläche mit einem >-Symbol. Beachten Sie, dass Access den Feldnamen entlang der linken Seite der Beispielabfragevorschau unten im Dialogfeld anzeigt. Klicken Sie auf Weiter, um den Vorgang fortzusetzen.
-
Wählen Sie auf der nächsten Seite das Feld aus, das die Werte enthält, die als Spaltenüberschriften verwendet werden sollen. Grundsätzlich sollten Sie ein Feld auswählen, das nur wenige Werte enthält, um eine gute Lesbarkeit der Ergebnisse zu gewährleisten. So ist beispielsweise ein Feld mit nur wenigen möglichen Werten (zum Beispiel das Geschlecht) unter Umständen einem Feld vorzuziehen, das viele unterschiedliche Werte enthalten kann (zum Beispiel das Alter).
Falls das Feld, das Sie für Spaltenüberschriften gewählt haben, den Datentyp "Datum/Uhrzeit" aufweist, enthält der Assistent einen zusätzlichen Schritt, in dem Sie angeben können, wie die Datumswerte in Intervalle (zum Beispiel Monate oder Quartale) gruppiert werden können.
Wählen Sie in diesem Beispiel Kategorie aus, und beachten Sie, dass Access die Kategoriebeispielnamen am oberen Rand der Beispielabfragevorschau unten im Dialogfeld anzeigt. Klicken Sie auf Weiter, um den Vorgang fortzusetzen.
-
Wenn Sie ein Feld vom Typ "Datum/Uhrzeit" für Spaltenüberschriften ausgewählt haben, werden Sie auf der nächsten Seite des Assistenten zur Angabe des Intervalls aufgefordert, in dem die Datumswerte gruppiert werden sollen. Sie können Jahr, Quartal, Monat, Datum oder Datum/Uhrzeit angeben. Wenn Sie kein Feld vom Typ "Datum/Uhrzeit" für Spaltenüberschriften gewählt haben, wird diese Seite des Assistenten übersprungen.
-
Wählen Sie auf der nächsten Seite ein Feld und eine Funktion aus, um die Zusammenfassungswerte zu berechnen. Der Datentyp des ausgewählten Felds bestimmt, welche Funktionen verfügbar sind.
Aktivieren oder deaktivieren Sie auf derselben Seite das Kontrollkästchen Gesamtsumme jeder Zeile berechnen, um Zeilensummen ein- oder auszuschließen.
Falls Zeilensummen berechnet werden, weist die Kreuztabellenabfrage eine zusätzliche Zeilenüberschrift auf, für die dasselbe Feld und dieselbe Funktion wie für den Feldwert verwendet werden. Bei Berechnung einer Zeilensumme wird eine zusätzliche Spalte eingefügt, in der die übrigen Spalten zusammengefasst sind. Wird mit der Kreuztabellenabfrage beispielsweise ein Durchschnittsalter nach Ort und Geschlecht errechnet (mit Spaltenüberschriften nach Geschlecht), wird in der zusätzlichen Spalte das Durchschnittsalter nach Ort für alle Geschlechter ermittelt.
Wählen Sie in diesem Beispiel im Feld Felder den Eintrag ID und im Feld Funktionen den Eintrag Anzahl aus, damit Access in jeder Schnittmenge von Lieferant und Kategorie die Anzahl der Artikel ermittelt. Behalten Sie die Aktivierung des Kontrollkästchens Gesamtsumme jeder Zeile berechnen bei. Access erstellt eine Spalte mit der Gesamtzahl der Artikel der einzelnen Lieferanten. Klicken Sie auf Weiter, um den Vorgang fortzusetzen.
-
Geben Sie auf der letzten Seite des Assistenten einen Namen für die Abfrage ein, und geben Sie dann an, ob Sie die Ergebnisse anzeigen oder den Abfrageentwurf ändern möchten.
Sie können die Funktion, mit der Zeilensummen berechnet werden, ändern, indem Sie die Kreuztabellenabfrage in der Entwurfsansicht bearbeiten.
-
Wenn Sie dieses Beispiel anhand der Tabelle "Artikel" aus der Northwind-Datenbank durchgearbeitet haben, zeigt die Kreuztabellenabfrage die Liste der Lieferantennamen als Zeilen, die Namen der Produktkategorien als Spalten und die Anzahl der Artikel in jeder Schnittmenge.
Wenn Sie Ihre Kreuztabellenabfrage in der Entwurfsansicht erstellen, können Sie beliebig viele Datensatzquellen (Tabellen und Abfragen) verwenden. Sie können jedoch für einen einfachen Entwurf sorgen, indem Sie zuerst eine Auswahlabfrage erstellen, die alle gewünschten Daten zurückgibt, und dann diese Abfrage als einzige Datensatzquelle für Ihre Kreuztabellenabfrage verwenden. Weitere Informationen zum Erstellen einer Auswahlabfrage finden Sie im Abschnitt Siehe auch.
Beim Erstellen einer Kreuztabellenabfrage in der Entwurfsansicht geben Sie in den Zeilen Summe und Kreuztabelle im Entwurfsbereich an, aus welchem Feld die Werte zu Spaltenüberschriften, zu Zeilenüberschriften und zu einer Summe, einem Mittelwert oder einer Anzahl werden oder anderweitig berechnet werden.
1. Die Einstellungen in diesen Zeilen bestimmen, ob es sich bei dem Feld um eine Zeilenüberschrift, eine Spaltenüberschrift oder einen Zusammenfassungswert handelt.
2. Mit dieser Einstellung werden die Werte des Felds als Zeilenüberschriften angezeigt.
3. Mit dieser Einstellung werden die Werte des Felds als Spaltenüberschriften angezeigt.
4. Mit diesen Einstellungen werden die Zusammenfassungswerte erstellt.
Erstellen der Abfrage
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.
-
Doppelklicken Sie im Dialogfeld Tabelle anzeigen auf jede Tabelle oder Abfrage, die Sie als Datensatzquelle verwenden möchten.
Wenn mehrere Datensatzquellen verwendet werden, müssen Sie sicherstellen, dass die Tabellen oder Abfragen über gemeinsame Felder verknüpft sind. Weitere Informationen zum Verknüpfen von Tabellen und Abfragen finden Sie im Abschnitt Siehe auch.
-
Schließen Sie das Dialogfeld Tabelle anzeigen.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfragetyp auf Kreuztabelle.
-
Doppelklicken Sie im Abfrageentwurfsfenster auf jedes Feld, das Sie als Quelle für Zeilenüberschriften verwenden möchten. Für Zeilenüberschriften können Sie maximal drei Felder auswählen.
-
Wählen Sie im Abfrageentwurfsbereich in der Zeile Kreuztabelle für jedes Zeilenüberschriftsfeld Zeilenüberschrift aus.
Sie können in der Zeile Kriterien einen Ausdruck eingeben, um die Ergebnisse für dieses Feld einzuschränken. Darüber hinaus können Sie mithilfe der Zeile Sortieren eine Sortierreihenfolge für ein Feld angeben.
-
Doppelklicken Sie im Abfrageentwurfsfenster auf das Feld, das Sie als Quelle für Spaltenüberschriften verwenden möchten. Für Spaltenüberschriften können Sie nur ein einziges Feld auswählen.
-
Wählen Sie im Abfrageentwurfsbereich in der Zeile Kreuztabelle für das Spaltenüberschriftsfeld den Eintrag Spaltenüberschrift aus.
Sie können einen Ausdruck in die Zeile Kriterien eingeben, um die Ergebnisse für das Spaltenüberschriftenfeld einzuschränken. Die Verwendung eines Kriterienausdrucks mit dem Spaltenüberschriftenfeld beschränkt jedoch nicht die Anzahl der Spalten, die von der Kreuztabellenabfrage zurückgegeben werden. Stattdessen wird beschränkt, welche Spalten Daten enthalten. Angenommen, Sie verfügen über ein Spaltenüberschriftenfeld mit drei möglichen Werten: Rot, Grün und Blau. Wenn Sie das Kriterium ='blau' auf das Spaltenüberschriftenfeld anwenden, zeigt die Kreuztabelle weiterhin eine Spalte für Rot und eine Spalte für Grün an, aber nur die Spalte für Blau enthält Daten.
Wenn Sie die Werte einschränken möchten, die als Spaltenüberschriften angezeigt werden, können Sie mit der Eigenschaft Fixierte Spaltenüberschriften der Abfrage eine Liste fester Werte angeben. Weitere Informationen finden Sie im nächsten Abschnitt.
-
Doppelklicken Sie im Abfrageentwurfsfenster auf das Feld, das Sie zur Berechnung von Zusammenfassungswerten verwenden möchten. Für Zusammenfassungswerte können Sie nur ein einziges Feld auswählen.
-
Wählen Sie im Abfrageentwurfsbereich in der Zeile Summe für das Zusammenfassungswertefeld eine Aggregatfunktion für die Berechnung der Werte aus.
-
Wählen Sie in der Zeile Kreuztabelle für das Zusammenfassungswertefeld den Eintrag Wert aus.
Sie können keine Kriterien für ein Zusammenfassungswertefeld angeben und nicht nach einem solchen Feld sortieren.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.
Angeben fester Werte für Spaltenüberschriften
Wenn Sie für Spaltenüberschriften feste Werte angeben möchten, können Sie die Eigenschaft Fixierte Spaltenüberschriften der Abfrage festlegen.
-
Öffnen Sie die Kreuztabellenabfrage in der Entwurfsansicht.
-
Wenn das Eigenschaftenblatt nicht sichtbar ist, drücken Sie F4, um es anzuzeigen.
-
Stellen Sie im Eigenschaftenblatt direkt über der Registerkarte Allgemein sicher, dass als Auswahltyp der Typ Abfrageeigenschaften festgelegt ist. Klicken Sie andernfalls auf eine leere Stelle über dem Abfrageentwurfsbereich.
-
Geben Sie im Eigenschaftenblatt auf der Registerkarte Allgemein in der Eigenschaft Fixierte Spaltenüberschriften eine kommagetrennte Liste der Werte ein, die Sie als Spaltenüberschriften verwenden möchten.
Einige Zeichen (wie zum Beispiel die meisten Satzzeichen) sind in Spaltenüberschriften nicht zulässig. Wenn Sie diese Zeichen in der Liste der Werte verwenden, ersetzt Access jedes dieser Zeichen durch einen Unterstrich (_).
SQL-Syntax für eine Kreuztabellenabfrage
Eine Kreuztabellenabfrage wird in SQL als TRANSFORM-Anweisung ausgedrückt. Eine TRANSFORM-Anweisung hat folgende Syntax:
TRANSFORM aggfunction
selectstatement PIVOT-Pivotfeld [IN (Wert1[, Wert2[, ...]])]Die TRANSFORM-Anweisung setzt sich wie folgt zusammen:
Teil |
Beschreibung |
Aggregatfunktion |
Eine SQL-Aggregatfunktion, die auf die ausgewählten Daten angewendet wird. |
SELECT-Anweisung |
Eine SELECT-Anweisung. |
Pivotfeld |
Das Feld oder der Ausdruck, das bzw. den Sie zum Erstellen von Spaltenüberschriften im Resultset der Abfrage verwenden möchten. |
Wert1, Wert2 |
Feste Werte, die zum Erstellen von Spaltenüberschriften verwendet werden. |
Die SQL-Ansicht schränkt die Anzahl der Tabellen oder Abfragen nicht ein, die Sie als Datensatzquellen für eine Kreuztabellenabfrage verwenden können. Sie können jedoch für einen einfachen Entwurf sorgen, indem Sie eine Auswahlabfrage erstellen, die alle gewünschten Daten für Ihre Kreuztabellenabfrage zurückgibt, und dann diese Auswahlabfrage als Datensatzquelle verwenden. Weitere Informationen zum Erstellen einer Auswahlabfrage finden Sie im Abschnitt Siehe auch.
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Andere auf Abfrageentwurf.
-
Schließen Sie das Dialogfeld Tabelle anzeigen.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ansichten auf Ansicht und dann auf SQL-Ansicht.
-
Geben oder fügen Sie auf der Registerkarte SQL-Objekt die folgende SQL ein:
TRANSFORM SELECT FROM GROUP BY PIVOT ;
-
Geben Sie in der ersten Zeile, nach TRANSFORM, einen Ausdruck zum Berechnen von Zusammenfassungswerten ein, z. B. (Summe([Betrag]).
Wenn Sie mehr als eine Tabelle oder Abfrage als Datensatzquelle verwenden, beziehen Sie den Tabellen- bzw. Abfragenamen als Teil jedes Feldnamens ein, z. B. Summe([Ausgaben].[Betrag]).
-
Geben Sie in der zweiten Zeile, nach SELECT, eine Liste von Feldern oder Feldausdrücken ein, die Sie für Zeilenüberschriften verwenden möchten. Trennen Sie die Listenelemente mithilfe von Semikolons, z. B. [Budget].[Abt-ID]; [Ausgaben].[Typ].
-
Geben Sie in der dritten Zeile, nach FROM, eine Liste der Tabellen oder Abfragen ein, die Sie als Datensatzquelle verwenden, z. B. Budget; Ausgaben.
-
Geben Sie in der vierten Zeile, nach GROUP BY, dieselbe Liste von Feldern ein, die Sie in Schritt 6 in der SELECT-Klausel verwendet haben.
-
Geben Sie in der fünften Zeile, nach PIVOT, den Feldnamen oder -ausdruck ein, den Sie für Spaltenüberschriften verwenden möchten, z. B. PIVOT [Budget].Jahr].
Wenn Sie einer Kreuztabellenabfrage in der SQL-Ansicht eine Sortierreihenfolge hinzufügen möchten, verwenden Sie dafür eine ORDER BY-Klausel.
-
Fügen Sie zwischen der GROUP BY-Klausel und der PIVOT-Klausel eine Zeile ein.
-
Geben Sie in der neuen Zeile ORDER BY und dahinter ein Leerzeichen ein.
-
Geben Sie den Feldnamen oder -ausdruck ein, nach dem Sie sortieren möchten, z. B. ORDER BY [Ausgaben].[Ausgabenklasse].
Standardmäßig werden Werte mit einer ORDER BY-Klausel in aufsteigender Reihenfolge sortiert. Wenn Sie in absteigender Reihenfolge sortieren möchten, geben Sie nach dem Feldnamen oder -ausdruck DESC ein.
-
Wenn Sie nach einem zusätzlichen Feld oder Ausdruck sortieren möchten, geben Sie ein Semikolon und dann den zusätzlichen Feldnamen oder Ausdruck ein. Sortiert wird in der Reihenfolge, in der die Felder oder Ausdrücke in der ORDER BY-Klausel angezeigt werden.
-
Geben Sie am Ende der PIVOT-Klausel in der SQL-Ansicht Ihrer Kreuztabellenabfrage IN und dahinter (in Klammern) eine durch Trennzeichen getrennte Liste von Werten ein, die als Spaltenüberschriften verwendet werden sollen. So erstellt beispielsweise IN (2007; 2008; 2009; 2010) vier Spaltenüberschriften: 2007, 2008, 2009, 2010.
Wenn Sie einen festen Wert angeben, der keinem Feldwert aus dem Pivotfeld entspricht, wird dieser feste Wert zu einer Spaltenüberschrift für eine leere Spalte.
-
Fügen Sie in der SQL-Ansicht Ihrer Kreuztabellenabfrage eine neue Zeile nach der FROM-Klausel hinzu.
-
Geben Sie WHERE und dahinter ein Feldkriterium ein.
Wenn Sie zusätzliche Kriterien verwenden möchten, können Sie Ihre WHERE-Klausel mithilfe der Operatoren AND und WHERE erweitern. Sie können Kriterien auch mithilfe von Klammern in logische Sätze gruppieren.
Es kann manchmal vorkommen, dass Sie – statt jeden Wert eines Felds für Zeilen- oder Spaltenüberschriften zu verwenden – die Werte eines Felds in Bereiche gruppieren und diese dann für Zeilen- oder Spaltenüberschriften verwenden möchten. Angenommen beispielsweise, Sie verwenden das Feld "Alter" für Spaltenüberschriften. Anstatt nun für jedes Alter eine eigene Spalte zu verwenden, verwenden Sie vielleicht lieber Spalten, die Altersbereiche darstellen.
Mit der Wenn-Funktion in einem Ausdruck können Sie Bereiche für Zeilen- oder Spaltenüberschriften erstellen.
Tipp: Wenn Sie Intervalle mit einem Feld vom Typ "Datum/Uhrzeit" erstellen möchten, sollten Sie erwägen, hierfür den Kreuztabellen-Abfrageassistenten zu nutzen. Mit dem Assistenten können Sie Datumswerte in die Intervalle Jahr, Quartal, Monat, Datum oder Datum/Uhrzeit gruppieren. Wenn keines dieser Intervalle Ihren Vorstellungen entspricht, sollten Sie die Kreuztabellenabfrage in der Entwurfsansicht erstellen und die gewünschten Intervalle anschließend mit den in diesem Abschnitt erläuterten Verfahren erstellen.
-
Öffnen Sie die Kreuztabellenabfrage in der Entwurfsansicht.
-
Klicken Sie im Abfrageentwurfsbereich in der Zeile Feld mit der rechten Maustaste auf eine leere Spalte, und klicken Sie dann im Kontextmenü auf Zoom.
-
Geben Sie im Feld Zoom einen Feldalias ein, gefolgt von einem Doppelpunkt (:).
-
Geben Sie Wenn() ein.
-
Geben Sie innerhalb der Klammern hinter Wenn einen Vergleichsausdruck ein, der den ersten Bereich der Feldwerte definiert.
Angenommen, Sie erstellen Bereiche für ein Altersfeld und möchten Bereiche von jeweils 20 Jahren festlegen. Der Vergleichsausdruck für den ersten Bereich lautet dann [Alter]<21.
-
Geben Sie nach dem Vergleichsausdruck ein Semikolon und danach einen Namen für den Bereich ein, den Sie in Anführungszeichen einschließen. Der angegebene Name ist die Kreuztabellenüberschrift für Werte, die innerhalb dieses Bereichs liegen.
Geben Sie beispielsweise hinter [Alter]<21 ein Semikolon und dann "0-20 Jahre" ein.
-
Geben Sie hinter dem Bereichsnamen ein Semikolon ein (außerhalb der Anführungszeichen), und führen Sie dann einen der folgenden Schritte durch:
-
Geben Sie zum Erstellen eines weiteren Bereichs Wenn() ein, und wiederholen Sie dann die Schritte 5, 6 und 7.
-
Geben Sie für den letzten Bereich lediglich einen Namen ein.
Ein vollständig geschachtelter Wenn-Ausdruck, der ein Altersfeld in Bereiche von jeweils 20 Jahren aufteilt, kann beispielsweise folgendermaßen aussehen (die Zeilenumbrüche wurden zur Verbesserung der Lesbarkeit hinzugefügt):
IIf([Age]<21,"0-20 years", IIf([Age]<41,"21-40 years", IIf([Age]<61,"41-60 years", IIf([Age]<81,"61-80 years", "80+ years"))))
Hinweis: Wenn Access den Ausdruck auswertet, wird der Vorgang angehalten, sobald eine der Wenn-Anweisungen als wahr ausgewertet wird. Sie müssen das untere Ende der einzelnen Bereiche nicht angeben, da jeder Wert, der niedriger ist als das untere Ende eines vorgegebenen Bereichs, bereits als wahr ausgewertet wurde.
-
-
Wählen Sie im Abfrageentwurfsbereich in der Zeile Summe die Option Gruppieren nach aus.
-
Geben Sie in der Zeile Kreuztabelle an, ob die Bereiche als Zeilenüberschriften oder Spaltenüberschriften verwendet werden sollen. Beachten Sie, dass Sie bis zu drei Zeilenüberschriften, aber nur eine Spaltenüberschrift angeben können.
Es empfiehlt sich, eine Kreuztabellenabfrage so einzurichten, dass sie bei der erstmaligen Ausführung zur Eingabe von Daten auffordert. Angenommen, Sie verwenden verschiedene Spaltenüberschriften, von denen eine "Land/Region" lautet. Statt immer Daten für jedes Land anzuzeigen, kann es sinnvoll sein, dass die Abfrage zur Eingabe eines Namens auffordert, und dann Daten der Benutzereingabe entsprechend ausgibt.
Eine Aufforderung zur Eingabe von Parametern kann für jedes Zeilenüberschriftsfeld hinzugefügt werden.
Hinweis: Sie können eine Aufforderung zur Eingabe von Parametern auch einem Spaltenüberschriftsfeld hinzufügen. Allerdings wird die Anzahl der angezeigten Spalten dadurch begrenzt.
-
Öffnen Sie die Kreuztabellenabfrage in der Entwurfsansicht.
-
Geben Sie in der Zeile Kriterien des Zeilenüberschriftsfelds, für das Sie Benutzer zur Eingabe auffordern möchten, die in eckige Klammern eingeschlossene Frage ein. Die Frage wird bei Ausführung der Abfrage als Eingabeaufforderung angezeigt.
Wenn Sie beispielsweise in der Zeile Kriterien die Frage [Welches Land oder welche Region?] eingeben, wird bei Ausführung der Abfrage ein Dialogfeld mit der Frage "Welches Land oder welche Region", ein Eingabefeld und die Schaltfläche OK angezeigt.
Tipp: Wenn Sie einen flexiblen Parameter wünschen, verketten Sie den Ausdruck mithilfe des Operators Wie mit Platzhalterzeichen. Statt beispielsweise als Kriterium [Welches Land oder welche Region?] anzugeben, können Sie Wie [Welches Land oder welche Region?]&"*" angeben, damit der Parameter einem größeren Eingabebereich entspricht. Durch die Verwendung des Operators Wie wird die Darstellung der Aufforderung zur Eingabe eines Parameters nicht verändert.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Parameter.
-
Geben Sie im Dialogfeld Abfrageparameter in der Spalte Parameter dieselbe Aufforderung zur Eingabe eines Parameters ein wie in der Zeile Kriterien. Fügen Sie die eckigen Klammern ein, jedoch weder verkettete Platzhalter noch den Operator Wie.
-
Wählen Sie in der Spalte Datentyp den Datentyp für den Parameter aus. Der Datentyp muss dem Datentyp des Zeilenüberschriftsfelds entsprechen.
Falls das Feld, mit dem Zusammenfassungswerte in der Kreuztabellenabfrage berechnet werden, Nullwerte enthält, werden diese Werte von jeder verwendeten Aggregatfunktion ignoriert. Bei manchen Aggregatfunktionen kann sich dies auf die Ergebnisse auswirken. Um beispielsweise einen Mittelwert zu berechnen, fügen Sie sämtliche Werte hinzu und dividieren das Ergebnis durch die Anzahl der Werte. Wenn das Feld jedoch Nullwerte enthält, werden diese Nullwerte nicht in der Anzahl der Werte berücksichtigt.
Manchmal ist es unter Umständen vorzuziehen, alle gegebenenfalls vorhandenen Nullwerte durch Nullen zu ersetzen, sodass die Werte bei Aggregatberechnungen gezählt werden. Mit der Nz-Funktion können Nullwerte durch Nullen ersetzt werden.
Syntax der Nz-Funktion
Nz ( Variante [; WertWennNull ] )
Die Syntax der Nz-Funktion weist die folgenden Argumente auf:
Argument |
Beschreibung |
Variante |
Erforderlich. Eine Variable vom DatentypVariante. |
WertWennNull |
Optional (außer bei Verwendung in einer Abfrage). Ein Wert vom Typ Variante, der einen Wert liefert, der zurückgegeben wird, wenn das Argument Variante gleich Null ist. Mit diesem Argument können Sie einen anderen Wert als Null oder eine Zeichenfolge der Länge Null zurückgeben. Hinweis: Wenn Sie die Nz-Funktion in einem Ausdruck in einer Abfrage ohne das Argument WertWennNull verwenden, wird in den Feldern, die Nullwerte enthalten, als Ergebnis eine Zeichenfolge der Länge Null zurückgegeben. |
-
Klicken Sie bei in der Entwurfsansicht geöffneter Abfrage im Abfrageentwurfsbereich mit der rechten Maustaste auf das Feld Wert.
-
Klicken Sie im Kontextmenü auf Zoom.
-
Schließen Sie im Feld Zoom den Feldnamen oder den Ausdruck in Klammern ein, und geben Sie dann vor der Klammer Nz ein.
-
Geben Sie direkt vor der rechten Klammer ; 0 ein.
Wenn Sie beispielsweise "Nz" mit einem Feld namens "Zeitverlust" verwenden, um Nullwerte durch Nullen zu ersetzen, lautet der fertige Ausdruck wie folgt:
Nz([Hours Lost], 0)
-
In der Kürze liegt die Würze Kreuztabellenabfragen sind bei steigender Anzahl der Zeilenkombination möglicherweise schwierig zu lesen. Verwenden Sie nicht mehr Zeilenüberschriften als nötig.
-
Schrittweiser Aufbau einer Kreuztabellenabfrage Beschränken Sie sich nicht nur auf die Verwendung von Tabellen. Häufig können Sie damit beginnen, dass Sie zunächst eine Gesamtsummenabfrage erstellen, die Sie dann als Datensatzquelle für eine Kreuztabellenabfrage verwenden.
-
Sorgfältige Auswahl des Spaltenüberschriftsfelds Kreuztabellendatenblätter sind meist einfacher lesbar, wenn die Anzahl der Spaltenüberschriften relativ klein bleibt. Nachdem Sie die Felder ermittelt haben, die Sie als Überschriften verwenden möchten, sollten Sie möglichst das Feld mit den wenigsten unterschiedlichen Werten zum Erstellen von Spaltenüberschriften verwenden. Beispiel: Wenn mit der Abfrage ein Wert nach Alter und Geschlecht berechnet wird, sollten Sie nicht das Alter sondern das Geschlecht als Spaltenüberschrift wählen, da für das Geschlecht in der Regel weniger Werte als für das Alter vorkommen.
-
Verwenden einer Unterabfrage in einer WHERE-Klausel Sie können eine Unterabfrage als Teil einer WHERE-Klausel in einer Kreuztabellenabfrage verwenden.