2013-05-14 13 views
9

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.Dati in virgola mobile in MS Access

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 potrei 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 in corrente:

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

Ecco come mi piacerebbe farlo sembrare:

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

risposta

13

È possibile ruotare i dati tramite 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

Grazie! Ha funzionato perfettamente. – user2382144

+0

Ecco un esempio leggermente migliore e una risposta più semplice: http://stackoverflow.com/questions/16691853/transform-and-pivot-in-access-2013-sql – CobaltBlue