我维护在Access中开发的应用程序。我必须实施更新查询,但我现在很困难,我不明白为什么。
基本上,查询必须在同一个表中的另一条记录之后更新表X中的记录,但是我写的查询没有做任何事情,我确实单独测试了更新和选择,它们都工作,但是在一起,没有。 / p>
我希望你们中的一些人可能会发现我的问题。
这是我写的查询(我确实删除了一些字段以避免太长时间,当然,您将看到的查询已经过测试,以确保它不是缺少字段的问题)
UPDATE
TABLE_X AS recordToUpdate,
(
SELECT
DUP_C2B_From_CPL.[NUM-GrpHdr],
DUP_C2B_From_CPL.[NUM-LOT],
DUP_C2B_From_CPL.[SINGLE-SCENARIO],
DUP_C2B_From_CPL.EqvtAmt,
DUP_C2B_From_CPL.EqvtAmtCur,
DUP_C2B_From_CPL.EqvtAmtCurTft,
DUP_C2B_From_CPL.XchgRateInfExchangeRate,
DUP_C2B_From_CPL.XchgRateInfRateType,
DUP_C2B_From_CPL.XchgRateInfContractId,
DUP_C2B_From_CPL.ChqTp
FROM DUP_C2B_From_CPL
) AS originalRecord
SET
recordToUpdate.EqvtAmt = originalRecord.EqvtAmt,
recordToUpdate.EqvtAmtCur = originalRecord.EqvtAmtCur,
recordToUpdate.EqvtAmtCurTft = originalRecord.EqvtAmtCurTft,
recordToUpdate.XchgRateInfExchangeRate = originalRecord.XchgRateInfExchangeRate,
recordToUpdate.XchgRateInfRateType = originalRecord.XchgRateInfRateType,
recordToUpdate.XchgRateInfContractId = originalRecord.XchgRateInfContractId,
recordToUpdate.ChqTp = originalRecord.ChqTp
WHERE
recordToUpdate.[SINGLE-SCENARIO] = 112811
DUP_C2B_From_CPL 这是一个正在检索我感兴趣的记录的子查询,因此我可以将其值更新为另一个。
在最后一个WHERE闭包中,我为了更加可读性而对id进行了硬编码(是的,它存在:)
而且设计师也正确渲染,所以这方面没有错误。但正如我所说,它似乎没有更新任何东西。
如果您需要更多信息,请不要犹豫告诉我。
答案 0 :(得分:1)
您可以尝试以下内容。
UPDATE
Table1 AS t1
INNER JOIN Table1 AS t2
ON t1.Field1 = t2.Field2
SET
T1.Field1 = t2.field1
如果没有任何加入,那么您可以尝试如下
UPDATE Table1 t1 , Table1 t2
SET T1.Field1 = t2.field1
where t1.field1 = 'aa' and t2.field1 = 'bb'
答案 1 :(得分:0)
好吧,出于某种原因,我不得不重启我的笔记本电脑,查询现在正在运行。
感谢您的帮助。