MS Access中关联两表获取同一行出发地与目的地邮编的经纬度
操作可行性说明
该需求完全可在MS Access中实现,核心逻辑是将邮编坐标表分别两次关联到快递摘要表,分别匹配始发邮编和目的地邮编的坐标信息。
方法一:图形界面操作(适合Access新手)
- 打开对应Access数据库,点击顶部「创建」选项卡,选择「查询设计」
- 在弹出的「显示表」窗口中,依次添加
NDA Postal Summary表、两次Zipcode Coordinates表,第二次添加的表Access会自动命名为Zipcode Coordinates_1用于区分 - 建立字段关联:拖动
NDA Postal Summary的Origin Zip字段到第一个Zipcode Coordinates表的Zip字段上建立关联;再拖动NDA Postal Summary的Destination Zip字段到Zipcode Coordinates_1表的Zip字段上建立关联 - 选择并设置输出字段:在下方字段选择区依次选择需要输出的字段,为避免重名需要给坐标字段设置别名:
- 选择
NDA Postal Summary的Origin Zip字段 - 选择第一个
Zipcode Coordinates的Latitude字段,在字段行将其别名修改为Latitude(For Origin Zip) - 选择第一个
Zipcode Coordinates的Longitude字段,别名修改为Longitude(For Origin Zip) - 选择
NDA Postal Summary的Destination Zip字段 - 选择
Zipcode Coordinates_1的Latitude字段,别名修改为Latitude(For Dest. Zip) - 选择
Zipcode Coordinates_1的Longitude字段,别名修改为Longitude(For Dest. Zip)
- 选择
- 点击顶部的「运行」按钮(感叹号图标)即可预览结果,确认无误后保存查询即可长期使用。
方法二:直接运行SQL查询
如果想快速实现,可以在新建查询后切换到SQL视图,直接粘贴执行以下代码:
SELECT [NDA Postal Summary].[Origin Zip], [Zipcode Coordinates].[Latitude] AS [Latitude(For Origin Zip)], [Zipcode Coordinates].[Longitude] AS [Longitude(For Origin Zip)], [NDA Postal Summary].[Destination Zip], [Zipcode Coordinates_1].[Latitude] AS [Latitude(For Dest. Zip)], [Zipcode Coordinates_1].[Longitude] AS [Longitude(For Dest. Zip)] FROM [NDA Postal Summary] INNER JOIN [Zipcode Coordinates] ON [NDA Postal Summary].[Origin Zip] = [Zipcode Coordinates].[Zip] INNER JOIN [Zipcode Coordinates] AS [Zipcode Coordinates_1] ON [NDA Postal Summary].[Destination Zip] = [Zipcode Coordinates_1].[Zip];
注意事项
- 上述默认用的是内连接,会过滤掉
NDA Postal Summary中始发/目的地邮编没有在Zipcode Coordinates中匹配到坐标的记录。如果需要保留所有原始记录,可将关联改为左连接:双击两个表之间的关联线,选择「包括NDA Postal Summary中的所有记录和坐标表中关联字段相等的记录」即可。 - 请确保两个表中的邮编字段数据格式、数据类型完全一致,否则可能出现匹配失败的问题。
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

