条件に応じて列にデータを表示する MS Access クエリを作成するにはどうすればよいですか?

条件に応じて列にデータを表示する MS Access クエリを作成するにはどうすればよいですか?

MS Access 2013 でちょっとした問題があります。必要なデータを 1 つのテーブルに表示するクエリを作成する方法がわかりません。データ構造は次のように表すことができます。

USERS 

ID  Name
001 John
002 Sarah
003 Miles 

RATING

UserID  Year    Rating
001     2012    79
001     2013    89
002     2012    78
002     2013    75
003     2012    74
003     2013    70

テーブルはユーザー ID フィールドに接続されています。次のデータを返すクエリが必要です。

Name    Rating in 2012  Rating in 2013 
John    79              89
Sarah   78              75
Miles   74              70

MS Access 2013 では可能ですか? クエリ コンストラクターの条件はすべての列に同時に適用されるようで、年ごとにフィルター処理することはできません。

答え1

これを実現する 1 つの方法は、年ごとに評価をフィルタリングする 2 つの初期クエリを作成することです。

SELECT UserId, Year, Rating
FROM Rating
WHERE (((Rating.Year)=2012));

そして

SELECT UserId, Year, Rating
FROM Rating
WHERE (((Rating.Year)=2013));

そして最後のクエリは次のようになります。

SELECT Users.Name, Rating2012.Rating, Rating2013.Rating
FROM Users 
LEFT JOIN Rating2012 ON Users.ID = Rating2012.UserId
LEFT JOIN Rating2013 ON Users.ID = Rating2013.UserID;

関連情報