Sql 三向内部联接的查询表达式中出现语法错误(缺少运算符)

Sql 三向内部联接的查询表达式中出现语法错误(缺少运算符),sql,vba,ms-access,Sql,Vba,Ms Access,我看到以下错误消息:查询表达式'm.AccountNumber=a.AccountNumber'中的语法错误(缺少运算符) 将以下查询写入我的VBA程序时,a.AccountNumber=b.AccountNumber'上的内部联接活动表\u 2M b: SELECT m.CaseManager, SUM(m.Lead) AS 'Total Leads', COUNT(a.Description) AS 'Total Activity', COUNT(b.Description) AS 'T

我看到以下错误消息:查询表达式'm.AccountNumber=a.AccountNumber'中的语法错误(缺少运算符) 将以下查询写入我的VBA程序时,a.AccountNumber=b.AccountNumber'上的内部联接活动表\u 2M b:

SELECT m.CaseManager, SUM(m.Lead) AS 'Total Leads', 
COUNT(a.Description) AS 'Total Activity', 
COUNT(b.Description) AS 'Total Activity (T-2 Months)', 
Sum(IIF(a.Description Like 'Outgoing Call%',1,0)) As 'Outbound Calls', 
Sum(IIF(b.Description Like 'Outgoing Call%',1,0)) As 'Outbound Calls (T-2 Months)', 
Sum(IIF(a.Description Like 'Credit%',1,0)) As 'Credit', 
Sum(IIF(b.Description Like 'Credit%',1,0)) As 'Credit (T-2 Months)', 
Sum(IIF(a.Description Like 'Correspondence Sent%',1,0)) As 'Correspondence', 
Sum(IIF(b.Description Like 'Correspondence Sent%',1,0)) As 'Correspondence (T-2 Months)' 
FROM AccountTable m INNER JOIN ActivityTable a ON m.AccountNumber=a.AccountNumber 
INNER JOIN ActivityTable_2M b On a.AccountNumber = b.AccountNumber 
GROUP BY m.CaseManager;

在我添加第二个内部联接(ActivityTable_2M)之前,查询运行良好,因此我假设这其中存在问题。我在SQL测试仪上运行了此查询,没有突出显示任何错误。

在access中,当使用多个联接时,需要使用括号
()
。请试试这个:

SELECT m.CaseManager, SUM(m.Lead) AS 'Total Leads', 
COUNT(a.Description) AS 'Total Activity', 
COUNT(b.Description) AS 'Total Activity (T-2 Months)', 
Sum(IIF(a.Description Like 'Outgoing Call%',1,0)) As 'Outbound Calls', 
Sum(IIF(b.Description Like 'Outgoing Call%',1,0)) As 'Outbound Calls (T-2 Months)', 
Sum(IIF(a.Description Like 'Credit%',1,0)) As 'Credit', 
Sum(IIF(b.Description Like 'Credit%',1,0)) As 'Credit (T-2 Months)', 
Sum(IIF(a.Description Like 'Correspondence Sent%',1,0)) As 'Correspondence', 
Sum(IIF(b.Description Like 'Correspondence Sent%',1,0)) As 'Correspondence (T-2 Months)' 
FROM (AccountTable m INNER JOIN ActivityTable a ON m.AccountNumber=a.AccountNumber) 
INNER JOIN ActivityTable_2M b On a.AccountNumber = b.AccountNumber 
GROUP BY m.CaseManager;

在access中,如果不使用括号分隔连接,则不能有多个连接。参考资料:

在MS Access中,连接两个以上的表时需要使用括号。语法来自tableA内部联接(tableB内部联接tableC)@Danny O'Sullivan如果您仍然面临此查询的任何问题,请告诉我。