You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access跨表更新查询:同SHPMT ID多FILERENTRTYNBR匹配问题咨询

问题根因

仅使用SHPMT ID作为两表更新的唯一关联键时,若源表current中同一SHPMT ID对应多条不同FILERENTRTYNBR的记录,Access无法判定源表记录与目标表all holds同ID记录的对应关系,会默认取匹配到的第一条源表值,批量更新该ID下所有目标行,最终出现同ID所有行被更新为同一个FILERENTRTYNBR值的问题。

解决方案

核心逻辑:补充关联条件,让两表的待匹配记录形成1:1精准映射,消除关联歧义。根据现有数据的结构,分两种场景处理:

  • 场景1:两表同SHPMT ID下的记录存在可对应的业务字段
    比如同运单下的条目行号、业务类型、录入时间、件数等字段可以唯一区分同ID下的不同记录,直接将该字段加入关联条件即可。
    以两表都存在行序号字段LINE_NBR为例,更新查询的SQL写法如下:
    UPDATE [all holds] 
    INNER JOIN [current] 
      ON ([all holds].[SHPMT ID] = [current].[SHPMT ID]) 
      AND ([all holds].[LINE_NBR] = [current].[LINE_NBR])
    SET [all holds].[FILERENTRTYNBR] = [current].[FILERENTRTYNBR];
    
    如果用查询设计视图操作,除了拖拽关联两表的SHPMT ID字段外,再把第二匹配字段也拖拽建立关联,再执行更新即可。
  • 场景2:两表同SHPMT ID下无现成的匹配字段,仅需按行顺序一一对应
    先给两表同ID下的记录生成组内序号,再用SHPMT ID + 组内序号作为联合关联键更新,步骤如下:
    1. 为current表生成带组内序号的查询,保存为current_rn:
      SELECT 
        c1.*, 
        COUNT(c2.[FILERENTRTYNBR]) AS group_rn
      FROM [current] AS c1 
      LEFT JOIN [current] AS c2 
        ON (c1.[SHPMT ID] = c2.[SHPMT ID]) 
        AND (c1.[FILERENTRTYNBR] >= c2.[FILERENTRTYNBR])
      GROUP BY c1.[SHPMT ID], c1.[FILERENTRTYNBR];
      
    2. 为all holds表生成带组内序号的查询,保存为allholds_rn,注意将SQL中的[自增主键ID]替换为你目标表中实际存在的唯一不重复字段(比如Access默认的自增ID字段):
      SELECT 
        a1.*, 
        COUNT(a2.[自增主键ID]) AS group_rn
      FROM [all holds] AS a1 
      LEFT JOIN [all holds] AS a2 
        ON (a1.[SHPMT ID] = a2.[SHPMT ID]) 
        AND (a1.[自增主键ID] >= a2.[自增主键ID])
      GROUP BY a1.[自增主键ID], a1.[SHPMT ID];
      
    3. 基于上述两个带序号的查询执行更新:
      UPDATE [allholds_rn] 
      INNER JOIN [current_rn] 
        ON ([allholds_rn].[SHPMT ID] = [current_rn].[SHPMT ID]) 
        AND ([allholds_rn].group_rn = [current_rn].group_rn)
      SET [allholds_rn].[FILERENTRTYNBR] = [current_rn].[FILERENTRTYNBR];
      

注意:执行任何更新操作前请务必备份all holds表原始数据,避免更新逻辑错误导致数据丢失。若同一SHPMT ID下两表的记录条数不一致,多余的记录不会被匹配更新,执行前建议先核对两表同ID下的条目数量是否匹配。

内容的提问来源于stack exchange,提问作者Johnny O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:27:38