我在联接操作中遇到语法错误:有2个不同的表,它们具有相同的字段名,但字段类型不同。一个是自动编号,另一个是文本字段。这是我的SQL。有人可以帮忙吗?

SELECT [SPO Data Entry Table].[SPO#], [Standard Brk].*, [Standard SubBrk].*
FROM ([SPO Data Entry Table] INNER JOIN [Standard Brk] ON [SPO Data Entry Table].[SPO#] = CDBL(Standard Brk.[SPO#])
INNER JOIN [Standard SubBrk] ON [Standard Brk].[Test #] = [Standard SubBrk].[Unit No]
WHERE [SPO Data Entry Table].[SPO#]=Val([Standard Brk].[SPO#]);

SPO数据输入表=自动编号
标准Brk =文字

最佳答案

您缺少CDBL中Standard Brk周围的表标识符

您有CDBL(Standard Brk.[SPO#]),应该是CDBL([Standard Brk].[SPO#])
您也没有从...开始后直接关闭开括号我想您需要在CDBL([Standard Brk].[SPO#])的右括号之后直接添加

编辑-=-=-=
进一步阅读代码,也删除where子句,因为它与内部join子句相同

给你

SELECT [SPO Data Entry Table].[SPO#], [Standard Brk].*, [Standard SubBrk].*
FROM ([SPO Data Entry Table] INNER JOIN [Standard Brk] ON [SPO Data Entry Table].[SPO#] = CDBL([Standard Brk.[SPO#]])) INNER JOIN [Standard SubBrk] ON [Standard Brk].[Test #] = [Standard SubBrk].[Unit No]

关于sql - 连接操作中的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7273667/

10-11 02:49