在MS Access中旋转数据

我有一个查询,我已经创build,以拉取他们已经花了一个月的学生证和餐食。 我想统计一个学生在一个月中每个项目(早餐,午餐,小吃)的数量。

看起来有太多的数据可以在数据透视表报告中处理,所以我希望有一个SQL查询可以运行。

以下是我创build的当前查询:

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

电stream输出:

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

以下是我想要的样子:

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

您可以使用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;