当SELECT语句包含多于1个连接时,Access数据库引擎对括号有严格的要求。我建议你从查询的简化版本开始(放弃字段列表和WHERE子句),这样你就可以专注于获取正确的连接。
SELECT *
FROM
(salesforce AS a
INNER JOIN portal AS b
ON a.loannumber = b.loannumber)
LEFT JOIN agents AS
ag ON b.agentid = ag.agentid;
假设版本的作品,试试这个:
SELECT
a.agentname AS [Salesforce AgentName],
a.loannumber,
ag.agentname AS [portal agentname]
FROM
(salesforce AS a
INNER JOIN portal AS b
ON a.loannumber = b.loannumber)
LEFT JOIN agents AS
ag ON b.agentid = ag.agentid
WHERE a.agentname <> ag.agentname;
通知我包围的别名用方括号,而不是单引号的列名。单引号不会触发错误,但它们将包含在列标题中......我怀疑你想要的。
您可以在Access的查询设计器中构建Access查询来帮助自己。这将使得使用db引擎不会接受的语法创建查询变得困难。
编辑:如果此查询的目的是比较从销售人员和代理表AGENTNAME值,可能你会想尝试以此为WHERE子句:
WHERE a.agentname <> ag.agentname OR ag.agentname Is Null;
尝试改变<>来! = –
[看起来您可能需要一些括号](http://nm1m.blogspot.com/2007/10/multiple-left-joins-in-ms-access.html) –
我仍然收到该更改的错误。 – user1161512