У меня есть небольшая база данных MS Access, содержащая четыре таблицы, и я борюсь с запросом MAX (Date), который включает все таблицы. Любая помощь будет принята с благодарностью.
Обзор базы данных:
TABLE COLUMNS
Person Person_ID |....
Games Game_ID | Name |....
Played_Games Played_Games_ID | Game_ID | Date |....
Participation Played_Games_ID | Person_ID |...
Чтобы перечислить все игры и дату, когда в каждую из них в последний раз играл любой человек, которого я использую:
SELECT DISTINCT Games.Name,
(SELECT MAX(Date) FROM Played_Games WHERE Played_Games.Game_ID = Games.Game_ID) AS Date_Last_Played
FROM Games
ORDER BY Games.Name
Это прекрасно работает, но я также хотел бы перечислить, в какую дату каждый из них в последний раз был сыгран членами определенной группы людей. Буду очень признателен за любую помощь.
Я задал несколько похожий вопрос несколько дней назад, но тогда моя цель состояла в том, чтобы перечислить все игры, сколько раз каждая игра была сыграна в общей сложности и сколько раз в каждую игру играли участники определенная группа людей (люди 1 и 2 - только пример). GarethD помог мне с этим, просто совершенным по приведенному ниже коду. Я пытался изменить этот код, чтобы решить мою новую задачу, потому что я думаю, что большая часть этой логики / структуры может быть повторно использована, но до сих пор я не добился успеха самостоятельно: - (
SELECT Games.Name,
IIF(ISNULL(TimesPlayed),0,TimesPlayed) AS Times_Played,
IIF(ISNULL(TimesPlayedByGroupMembers),0,TimesPlayedByGroupMembers) AS Times_Played_By_Group_Members
FROM Games
LEFT JOIN
( SELECT Game_ID,
COUNT(*) AS TimesPlayed,
SUM(IIF(ISNULL(Participation.Played_Games_ID),0,1)) AS TimesPlayedByGroupMembers
FROM Played_Games
LEFT JOIN
( SELECT Played_games_ID
FROM Participation
WHERE Person_ID IN (1, 2)
GROUP BY Played_games_ID
) AS Participation
ON Participation.Played_Games_ID = Played_Games.Played_Games_ID
GROUP BY Game_ID
) AS Played_Games
ON Played_Games.Game_ID = Games.Game_ID
ORDER BY Games.Name
Любая помощь будет принята с благодарностью. Спасибо за ваше время!