2013-05-14 41 views
9

Tôi có truy vấn mà tôi đã tạo để kéo ID sinh viên và các mặt hàng bữa ăn mà họ đã thực hiện trong khoảng thời gian dài một tháng. Tôi muốn đếm số lượng của mỗi món (Ăn sáng, Trưa, Snack) do một học sinh thực hiện trong suốt tháng.Dữ liệu xoay vòng trong MS Access

Có vẻ như có quá nhiều dữ liệu để truy cập để xử lý trong báo cáo Bảng tổng hợp, vì vậy tôi hy vọng có một truy vấn SQL mà tôi có thể chạy thay thế.

Dưới đây là các truy vấn hiện tại tôi đã tạo:

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

sản lượng hiện tại:

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

Đây là cách tôi muốn nó nhìn:

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

Trả lời

13

Bạn có thể xoay dữ liệu sử dụng 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

Cảm ơn bạn! Điều đó làm việc hoàn hảo. – user2382144

+0

Đây là một ví dụ tốt hơn một chút và câu trả lời đơn giản hơn: http://stackoverflow.com/questions/16691853/transform-and-pivot-in-access-2013-sql – CobaltBlue

Các vấn đề liên quan