У меня есть небольшая база данных MS Access, содержащая четыре таблицы, и я борюсь с запросом SELECT COUNT, который включает все таблицы. Любая помощь будет принята с благодарностью.
Обзор базы данных:
TABLE COLUMNS
Person Person_ID |....
Games Game_ID | Name |....
Played_Games Played_Games_ID | Game_ID |....
Participation Played_Games_ID | Person_ID |...
Чтобы перечислить все игры и сколько раз каждая игра была сыграна, я использую:
SELECT DISTINCT
Games.Name,
(SELECT COUNT(*) FROM Played_Games WHERE Played_Games.Game_ID = Games.Game_ID) AS TimesPlayed
FROM Games
ORDER BY Games.Name
Это прекрасно работает, но я также хотел бы перечислить, сколько раз в каждую игру играют члены определенной группы людей
Я добился некоторого прогресса с кодом ниже (строка 4), но я все еще застрял с одной маленькой проблемой:
Ссылка на Games.Game_ID в конце самых внутренних скобок больше не связана с текущим Game_ID, как в коде выше. Теперь это кажется неопределенным. Когда я запускаю это в MS Access Query Designer для тестирования, он просит меня ввести значение для Games.Game_ID. Если я затем наберу какой-нибудь случайный Game_ID, код будет работать «отлично», но, как вы, вероятно, уже поняли, значение TimesPlayedByGroupMembers будет одинаковым для каждой строки в наборе записей и будет истинным только для этого конкретного Game_ID, который я набрал
SELECT DISTINCT
Games.Name,
(SELECT COUNT(*) FROM Played_Games WHERE Played_Games.Game_ID = Games.Game_ID) AS TimesPlayed,
(SELECT COUNT(*) FROM (SELECT DISTINCT Played_Games_ID FROM Participation WHERE Played_Games_ID IN (SELECT Played_Games_ID FROM Played_Games WHERE Game_ID = Games.Game_ID) AND Person_ID IN (26, 27, 28))) AS TimesPlayedByGroupMembers
FROM Games
ORDER BY Games.Name
Я попытаюсь объяснить, что мой код делает и / или должен делать изнутри
В самых внутренних скобках перечислены Played_Games_ID, относящиеся к текущей игре, но это не работает, поскольку Games.Game_ID не связан с текущим Game_ID
В средних скобках (включая приведенную выше) перечислены Played_Games_ID's, в которых участвует текущая игра и один или несколько выбранных персонажей. Перечисленные здесь Person_ID являются лишь примером, и эта часть кода работает
Крайние скобки (включая все вышеперечисленные) подсчитывают, сколько раз в каждую игру играет один или несколько выбранных лиц
Я действительно застрял с этим, поэтому любая помощь будет принята с благодарностью
Спасибо за ваше время