2013-05-14 16 views
9

Ich habe eine Abfrage, die ich erstellt habe, um Studenten IDs und Essensgegenstände, die sie über einen Monat lang genommen haben, zu ziehen. Ich möchte die Zahlen jedes Gegenstandes (Frühstück, Mittagessen, Snack), die ein Schüler im Laufe des Monats genommen hat, zählen.Schwenken von Daten in MS Access

Es scheint, als gäbe es zu viele Daten für den Zugriff in einem PivotTable-Bericht. Daher hoffte ich, dass eine SQL-Abfrage ausgeführt werden konnte.

Hier ist die aktuelle Abfrage die ich angelegt habe:

SELECT April2013.SID, MenuItems.MealType AS Apr2013Meal 
FROM April2013 LEFT JOIN MenuItems ON MenuItems.Item=April2013.Item; 

Stromausgang:

+-----+-----------+ 
| SID | Meal | 
+-----+-----------+ 
| 001 | Lunch  | 
| 002 | Lunch  | 
| 003 | Breakfast | 
| 004 | Snack  | 
| 005 | Lunch  | 
| 006 | Lunch  | 
| 001 | Breakfast | 
| 003 | Snack  | 
| 004 | Breakfast | 
+-----+-----------+ 

Hier ist, wie ich es aussehen würde:

+-----+-----------+-------+---------+ 
| SID | Breakfast | Lunch | Snack | 
+-----+-----------+-------+---------+ 
| 001 |   3 | 10 |  1 | 
| 002 |   4 |  8 | 10 | 
| 003 |  18 |  2 |  7 | 
| 004 |   6 |  7 |  2 | 
+-----+-----------+-------+---------+ 

Antwort

13

können Sie schwenken die Daten unter Verwendung von TRANSFORM:

TRANSFORM COUNT(MenuItems.MealType) 
SELECT April2013.SID, MenuItems.MealType 
FROM April2013 
LEFT JOIN MenuItems 
    ON MenuItems.Item=April2013.Item 
GROUP BY April2013.SID 
PIVOT MenuItems.MealType; 
+0

Vielen Dank! Das hat perfekt funktioniert. – user2382144

+0

Hier ist ein etwas besseres Beispiel und einfachere Antwort: http://stackoverflow.com/questions/16691853/transform-and-pivot-in-access-2013-sql – CobaltBlue