Dati di rotazione in MS Access

Ho una query che ho creato per estrarre gli ID studente e gli articoli pasto che hanno impiegato per un periodo di un mese. Vorrei contare i numeri di ogni articolo (Colazione, Pranzo, Snack) presi da uno studente nel corso del mese.

Sembra che ci siano troppi dati per l’accesso da gestire in un rapporto di tabella pivot, quindi speravo che ci fosse una query SQL che avrei potuto eseguire.

Ecco la query corrente che ho creato:

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

Uscita corrente:

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

Ecco come vorrei che guardasse:

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

Puoi ruotare i dati usando 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;