Kreuztabellenabfragen

Beim folgenden Beispiel gehen wir davon aus, dass die Datenquelle keine Tabelle, sondern eine Abfrage sei. Einerseits um zu zeigen, dass das geht, zum anderen, weil die folgenden Daten in einer Tabelle kaum sinnvoll normalisiert wären:

qryVerkaeufe : Auswahlabfrage
IDVerkauf datVerkaufsDatum txtProdukt lngStueck curEinnahme
1 01.02.2010 Kaugummi 10 5,00
2 01.02.2010 Lutscher 15 1,50
3 01.02.2010 Paprikachips 5 10,00
4 02.02.2010 Kaugummi 5 2,50
5 02.02.2010 Paprikachips 5 10,00

Nun wollen wir die Verkäufe eines Tages in einer Zeile sehen. Die Produkte sollen spaltenweise dargestellt werden. Dafür wählen wir den AbfragetypAbfragetyp 'Kreuztabelle' aus. Der untere Teil des Abfragefensters verändert sich daraufhin: Der uns schon bekannte Funktionen-Button wird aktiviert, eine neue Zeile 'Kreuztabelle' kommt hinzu, und die Zeile 'Anzeigen' verschwindet. Wir füllen dies wie folgt aus:

Feld: datVerkaufsDatum txtProdukt lngStueck
Tabelle: tabVerkaeufe tabVerkaeufe tabVerkaeufe
Funktion: Gruppierung Gruppierung Summe
Kreuztabelle: Zeilenüberschrift Spaltenüberschrift Wert
Sortierung: Aufsteigend    
Kriterien:      
oder:      
       
TRANSFORM Sum(tabVerkaeufe.lngStueck)
SELECT tabVerkaeufe.datVerkaufsDatum
FROM tabVerkaeufe
GROUP BY tabVerkaeufe.datVerkaufsDatum
PIVOT tabVerkaeufe.txtProdukt;
Abfrage1 : Kreuztabellenabfrage
datVerkaufsDatum Kaugummi Lutscher Paprikachips
01.02.2010 10 15 5
02.02.2010 5   5

Die Abfrage zeigt, wieviele Produkte pro Tag verkauft wurden. Wer das Beispiel am eigenen PC nachverfolgt, sollte auch einmal mit anderen Funktionen in der Spalte 'lngStueck' experimentieren, oder 'lngStueck' durch 'curEinnahme' ersetzen.