Translate

Mittwoch, 24. April 2013

MS ACCESS: Alle Spalten einer Kreuztabellenabfrage summieren

Die Kreuztabellenabfrage hat die Aufgabe Daten nach Zeilen und Spalten zu gruppieren.

In der folgenden Abbildung werden Auftragsdaten nach Jahrgang zeilenweise gruppiert und nach Monat spaltenweise und der Umsatz summiert:

Der SQL-Code dazu sieht wie folgt aus:
TRANSFORM Sum([Einzelpreis]*[menge]) AS Umsatz
SELECT Year([ErstelltAm]) AS Jahrgang
FROM tblAuftragsdaten
GROUP BY Year([ErstelltAm])
PIVOT Month([ErstelltAm]);


An dieser Stelle besteht häufig der Wunsch die Monatsspalten 1 bis 12 zu summieren, um die Jahressumme zuzätzlich abzubilden.
Dies ist durchaus möglich und könnte so aussehen:
Erreicht wird dies ganz einfach mit folgender kleinen Erweiterung im SQL-Code:
TRANSFORM Sum([Einzelpreis]*[menge]) AS Umsatz
SELECT Year([ErstelltAm]) AS Jahrgang, Sum([Einzelpreis]*[menge]) AS Jahresumsatz
FROM tblAuftragsdaten
GROUP BY Year([ErstelltAm])
PIVOT Month([ErstelltAm]);


In der Entwursansicht wird dies folgendermaßen hinterlegt:

Eine Endsummenzeile läßt sich über eine Abfrage (SQL-Code) nicht erzeugen.
Ab der Version 2007 ist  Access zwar in der Lage eine solche Endberechnungszeile darzustellen, doch diese wird nicht aus dem SQL-Code erzeugt, sondern die Datenblattansicht von Access berechnet und stellt diese Endzeile dar.

Keine Kommentare:

Kommentar veröffentlichen