我在使用 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;