如何在多个INNER JOIN SQL中计算一个表的所有项目?

时间:2018-06-29 16:34:21

标签: sql ms-access ms-access-2010

我正在基于匹配的主键和外键内部联接多个表。其中一个字段需要我遇到麻烦的汇总计数功能。

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产生错误“您试图执行不包含指定表达式'Name'作为聚合函数一部分的查询。”

如果我删除了聚合计数功能,则INNER JOIN表将起作用,除了操作项是单独列出而不是一起计数。

,...tbl_ActionItems.ActionItemsNameID

我认为该错误表明我正在使用GROUP BY子句,但是我不确定如何在此处应用它。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

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