拉/长距离比较

时间:2014-05-19 16:31:19

标签: access-vba

我在弄清楚如何做到这一点时遇到了一些麻烦。我所拥有的是Access表上160K位置的列表,每个位置都有lat和long坐标。我试图找出如何创建一个列,将列表中的1项与其余项目进行比较,以恢复最近的英里距离。

我已经弄明白如何使用半正式公式进行1比1的比较,但我在尝试自动完成剩下的工作时迷失了。

这基本上就是我想要制作的......

Loc_ID  Loc_Lat     Loc_Long     Min_Miles_Away
1       33.537214   -81.687378   674.48
4       42.16584    -87.845117   11.83
5       41.99558    -87.869057   11.83
6       41.85325    -89.486883   83.75

对表的解释......
位置1最靠近位置5(相隔674.48英里)
位置4最靠近位置5(相隔11.83英里)
位置5最靠近位置4(相隔11.83英里)
位置6最靠近位置5(相隔83.75英里)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你可以进行笛卡尔连接,即没有位置的连接。它会将每一行与每一行连接起来。您只需将SQL写入查询的SQL视图即可。

SELECT *
FROM locations a, locations b

接下来,您可以在该表上计算距离(我猜您已经拥有该代码,因此只需插入该函数)。 最后你可以按MIN分组。

SELECT loc_id, loc_lat, loc_long, MIN(calulated_distance) as min_miles_away
FROM myCalculatedQuery