
我在使用 MS Access 2013 時遇到了一點問題。資料結構可以用下圖來說明:
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
實現此目的的一種方法是建立兩個按年份過濾評級的初始查詢:
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;