
Estou com um pequeno problema com o MS Access 2013. Não consigo descobrir como criar uma consulta para mostrar os dados necessários em uma tabela. A estrutura de dados pode ser ilustrada com o seguinte:
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
As tabelas estão conectadas ao campo de ID do usuário. Preciso de uma consulta para retornar os seguintes dados:
Name Rating in 2012 Rating in 2013
John 79 89
Sarah 78 75
Miles 74 70
É possível no MS Access 2013? Os critérios no construtor de consulta parecem ser aplicados a todas as colunas simultaneamente e não consigo filtrá-los por ano de forma diferente.
Responder1
Uma maneira de conseguir isso seria criar duas consultas iniciais que filtrassem as classificações por ano:
SELECT UserId, Year, Rating
FROM Rating
WHERE (((Rating.Year)=2012));
e
SELECT UserId, Year, Rating
FROM Rating
WHERE (((Rating.Year)=2013));
e então a consulta final:
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;