好吧,我正在尝试使用带有MS Access查询的基本left()函数,以便在两个表之间创建内部联接。将要连接的两列包含给定街道地址的前3个字符。
我试图使用如下所示的功能:
我只想拍下这一栏的前三个字符(显然是从左边开始),然后将它加入地址"左边的地址"我的分支管理表中的列。然而,每次我尝试运行此查询时,都会出现语法错误。左边的函数几乎在每种语言/ RDBMS中都非常简单,我做错了什么?
编辑:这是错误的屏幕截图: 错误非常模糊。
答案 0 :(得分:3)
你遗漏了一个紧密的括号。改变这个......
ON ([Branch Mgmt].[Left 3 of address] = left([SalesPage Offices w/CRD].ADDRESS_LINE_1,3)
到此......
ON ([Branch Mgmt].[Left 3 of address] = left([SalesPage Offices w/CRD].ADDRESS_LINE_1,3))
答案 1 :(得分:0)
我认为你不能在你的加入声明中使用LEFT()
函数。而是运行子查询以获取所需的字段,然后将它们链接在一起。如下所示:
SELECT M.TRADE_FIRM, M.POSTAL_CODE_1, M.ADDRESS_LINE_1,
M.OFFICE_ID, M.STATE_PROVINCE, M.CITY, B.*
FROM
(
SELECT S.*, LEFT(S.ADDRESS_LINE_1, 3) AS Left3Addr
FROM [SalesPage Offices w/CRD] AS S
) AS M
INNER JOIN [Branch Mgmt] AS B ON B.[Left 3 of address] = M.Left3Addr
AND B.State = M.State
AND B.City = M.City
WHERE M.TRADE_FIRM = 'WHATEVER'