Как мне подсчитать все элементы для одной таблицы в нескольких INNER JOIN SQL? - PullRequest
0 голосов
/ 29 июня 2018

Я внутренне объединяю несколько таблиц на основе совпадения первичного и внешнего ключей. Для одного из полей требуется функция агрегированного подсчета, с которой у меня возникают проблемы.

SELECT qry_Facility.Name, tbl_FacilityDates.DateChecked, Count(tbl_ActionItems.ActionItemsNameID)
FROM (qry_Facility INNER JOIN tbl_FacilityDates ON qry_Facility.NameID = tbl_FacilityDates.DatesNameID) INNER JOIN tbl_ActionItems ON qry_Facility.NameID = tbl_ActionItems.ActionItemsNameID
WHERE ((tbl_FacilityDates.Type=)”Restaurants”);

Приведенный выше SQL выдает ошибку «Вы попытались выполнить запрос, который не включает указанное выражение« Имя »как часть статистической функции».

Если я удалю функцию совокупного подсчета, будет работать таблица INNER JOIN, за исключением того, что элементы действий перечислены отдельно, а не подсчитаны вместе.

,...tbl_ActionItems.ActionItemsNameID

Я думаю, что ошибка указывает на то, что я использую предложение GROUP BY, но я не уверен, как его применить здесь.

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 29 июня 2018

Попробуйте следующее:

SELECT qry_Facility.Name, 
tbl_FacilityDates.DateChecked, 
Count(tbl_ActionItems.ActionItemsNameID) 
FROM (qry_Facility 
INNER JOIN tbl_FacilityDates 
ON qry_Facility.NameID = tbl_FacilityDates.DatesNameID) 
INNER JOIN tbl_ActionItems 
ON qry_Facility.NameID = tbl_ActionItems.ActionItemsNameID 
WHERE ((tbl_FacilityDates.Type=)”Restaurants”) 
Group by qry_Facility.Name,
    tbl_FacilityDates.DateChecked
...