
У меня небольшая проблема с 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
Таблицы связаны с полем идентификатора пользователя. Мне нужен запрос, чтобы вернуть следующие данные:
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;