Pivoting data in MS Access
我创建了一个查询,以提取他们在一个多月的时间内获取的学生ID和餐食。我想计算一下学生在一个月中所摄取的每种物品(早餐,午餐,小吃)的数量。
在数据透视表报表中似乎有太多数据无法访问,因此我希望可以代替它运行一个SQL查询。
这是我创建的当前查询:
1 2 | SELECT April2013.SID, MenuItems.MealType AS Apr2013Meal FROM April2013 LEFT JOIN MenuItems ON MenuItems.Item=April2013.Item; |
电流输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 | +-----+-----------+ | SID | Meal | +-----+-----------+ | 001 | Lunch | | 002 | Lunch | | 003 | Breakfast | | 004 | Snack | | 005 | Lunch | | 006 | Lunch | | 001 | Breakfast | | 003 | Snack | | 004 | Breakfast | +-----+-----------+ |
这是我希望它的外观:
1 2 3 4 5 6 7 8 | +-----+-----------+-------+---------+ | SID | Breakfast | Lunch | Snack | +-----+-----------+-------+---------+ | 001 | 3 | 10 | 1 | | 002 | 4 | 8 | 10 | | 003 | 18 | 2 | 7 | | 004 | 6 | 7 | 2 | +-----+-----------+-------+---------+ |
您可以使用TRANSFORM旋转数据:
1 2 3 4 5 6 7 | 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; |