
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;