0

我是一个完全的新手,因此无法通过查看过去的帖子找到解决方案。我有一个地理数据库(ESRI ArcMAP,大约 70k 条记录),其中包含从两个数据库合并的道路杀伤数据。

前任。

Date_, Route, MilePost, Database

10/1/2012, ML34, 113, Animal_Vehicle

10/2/2012, ML34, 113.4, Carcasses

10/2/2012, ML16, 86, Carcasses

我正在尝试整理两个数据库之间的重复记录。具有相同MilePostRoute和的记录Date_已被删除。问题是:Animal_Vehicle可以在一周中的任何时间或一天记录碰撞,而Carcasses数据库中的记录仅在正常工作时间记录。因此,重复来自Animal_Vehicle前一天或周末下班后记录的尸体。Carcasse然后在第二天早上或星期一(或在假期周末的情况下为星期二)复制记录。另一个问题是Animal_Vehicle MilePosts倾向于四舍五入到最近的半英里,而Carcasses MilePosts更精确。

目标是构建一个查询或算法,返回在两个Database值之间配对的记录,以便当 时Database=Carcasses,查询返回带有 的记录Database=Animal_Vehicle,其中MilePost是记录的 +/- 0.4 Carcasses,而 是在记录的Date_最后四天内Carcasses. 它将返回示例数据的前两行。

非常感谢任何回应!谢谢!

4

1 回答 1

1

这只是一个花哨的连接:

select *
from Carcasses c full outer join
     Animal_Vehicle av
     on c.date between av.date and av.date+3 and
        abs(c.Milepost - av.Milepost) < 0.5 and
        c.route = av.route

on条款具有基于您的描述的条件。这不太可能是一个非常快速的查询。而且,我假设您正在使用一个数据库,您可以在其中使用“+3”将日期添加到日期 - 这取决于数据库。

于 2012-12-31T00:17:09.877 回答