这是与MS Access 2010相关的问题。
是否可以使用短路径(A)并使用SELECT语句编写UPDATE语句以捕获相关值,或者我必须走长路径(B)并且我首先需要查询数据通过SELECT语句,我将保存为查询,然后在我的UPDATE语句中引用此保存的查询?
这是(A):
UPDATE tbl_A
SET tbl_A.Header1 = (SELECT F1 FROM tblStaging
WHERE tblStaging.F1 = 'ISSUER CODE')
WHERE (((tbl_A.TableName)='tblStaging'));
这是B:
SELECT F1
FROM tblStaging
WHERE F1 = 'ISSUER CODE';
UPDATE tbl_A, Q_A_Sel_ISSUERCODE
SET tbl_A.Header1 = [Q_A_Sel_ISSUERCODE].[F1]
WHERE (((tbl_A.TableName)='tblStaging'));
谢谢
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
克里斯给出了解决方案:
UPDATE tbl_A, tblStaging
SET tbl_A.Header1 = tblStaging.F1
WHERE (((tblStaging.F1)='ISSUER CODE') AND ((tbl_A.TableName)='tblStaging'));
答案 0 :(得分:2)
我不确定Access,但在SQL Server中你可以像这样使用一个UPDATE语句(而且我认为它也应该在Access中工作):
UPDATE A
SET Header1 = S.F1
FROM tbl_A A, tblStaging S
WHERE S.F1 = 'ISSUER CODE' AND A.TableName ='tblStaging';
虽然这完全是你想要做的,但它与:
相同UPDATE tbl_A SET Header1 = 'ISSUER CODE'
WHERE TableName = 'tblStaging';