use*_*144 11 sql ms-access pivot
我创建了一个查询,用于提取他们在一个月的时间内完成的学生ID和用餐项目.我想计算一个学生在这个月的每个项目(早餐,午餐,小吃)的数量.
看来,在数据透视表报表中访问句柄的数据太多,所以我希望有一个我可以运行的SQL查询.
这是我创建的当前查询:
SELECT April2013.SID, MenuItems.MealType AS Apr2013Meal
FROM April2013 LEFT JOIN MenuItems ON MenuItems.Item=April2013.Item;
Run Code Online (Sandbox Code Playgroud)
当前输出:
+-----+-----------+
| SID | Meal |
+-----+-----------+
| 001 | Lunch |
| 002 | Lunch |
| 003 | Breakfast |
| 004 | Snack |
| 005 | Lunch |
| 006 | Lunch |
| 001 | Breakfast |
| 003 | Snack |
| 004 | Breakfast |
+-----+-----------+
Run Code Online (Sandbox Code Playgroud)
这是我希望它看起来的样子:
+-----+-----------+-------+---------+
| SID | Breakfast | Lunch | Snack |
+-----+-----------+-------+---------+
| 001 | 3 | 10 | 1 |
| 002 | 4 | 8 | 10 |
| 003 | 18 | 2 | 7 |
| 004 | 6 | 7 | 2 |
+-----+-----------+-------+---------+
Run Code Online (Sandbox Code Playgroud)
Tar*_*ryn 17
您可以使用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;
Run Code Online (Sandbox Code Playgroud)