更新Access数据库的查询

时间:2017-07-18 08:25:35

标签: sql ms-access

我维护在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进行了硬编码(是的,它存在:)

而且设计师也正确渲染,所以这方面没有错误。但正如我所说,它似乎没有更新任何东西。

如果您需要更多信息,请不要犹豫告诉我。

2 个答案:

答案 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)

好吧,出于某种原因,我不得不重启我的笔记本电脑,查询现在正在运行。

感谢您的帮助。

相关问题