我正在尝试整理一个更新表中字段的查询。我正在尝试运行一个子选择查询,该查询为我提供一个数字,然后使用该子查询产生的数字作为更新查询条件的一部分。
USE EMMS
Update [2_import_VZW_tbl_SMTN]
set [2_import_VZW_tbl_SMTN].[Client_ID] =[tbl_Foundation_Account].[Client_ID]
where ([tbl_Foundation_Account].[Foundation_Account_ID] =
(Select TOP 1 tbl_Foundation_Account.Foundation_Account_ID
FROM tbl_Foundation_Account
INNER JOIN [2_Import_tbl_AWCDSU]
ON tbl_Foundation_Account.Foundation_Account_ID =
[2_Import_tbl_AWCDSU].[ECPD Profile ID]))
我的问题是我一直收到此错误
多部分标识符 tbl_Foundation_Account.Foundation_Account_ID“无法绑定。
我是否错误地使用了子查询?当我之前收到此错误时,这是因为表格或字段名称有些含糊不清,但这次我检查了所有这些并且应该没问题。谁能解释我犯下的SQL罪?
答案 0 :(得分:1)
关于错误
多部分标识符 tbl_Foundation_Account.Foundation_Account_ID"无法受约束。
这是因为外部[tbl_Foundation_Account].[Client_ID]
查询范围内的表列UPDATE
不存在。
外部查询唯一的表格是[2_import_VZW_tbl_SMTN]
,它没有像[tbl_Foundation_Account].[Client_ID]
这样的列。
它类似于用拼写错误写一个列名或者像你说的那样
如果我之前收到此错误,那是因为有些错误 表格或字段名称中的歧义
请尝试如下查询。 请注意,我使用内部查询语法并确保使用
返回单个值 select top 1 [Client_ID]
在内部查询中。其余的查询语法是相同的。
USE EMMS
Update [2_import_VZW_tbl_SMTN]
set [2_import_VZW_tbl_SMTN].[Client_ID] =
(
select top 1 [Client_ID]
from [tbl_Foundation_Account]
where [Foundation_Account_ID] =
(
Select TOP 1 a.Foundation_Account_ID
FROM tbl_Foundation_Account a
INNER JOIN [2_Import_tbl_AWCDSU] b
ON a.Foundation_Account_ID = b.[ECPD Profile ID]
)
)
答案 1 :(得分:0)
另一张海报早些时候提交了这个答案,但后来删除了它。我能够在删除它之前尝试它,它完全符合我需要它的工作方式。我会用这个作为正确的答案,除非别人能告诉我为什么这是一个坏主意。
{{1}}