我有一个用于跟踪物理对象位置的数据库,我们称它们为小部件。它有一个审计跟踪表,用于跟踪小部件何时被放置在某个位置,以及它何时离开某个位置(以及之后它去了哪里)。
所以在概念上它看起来像这样
Widget ID Date Old Location New Location
1 01-Oct-2013 NULL 101
1 03-Oct-2013 101 108
1 08-Oct-2013 108 101
2 01-oct-2013 NULL 101
2 02-Oct-2013 101 103
3 12-oct-2013 NULL 101
我希望能够查询在开始日期和结束日期之间位于位置 101 的小部件列表,例如 2013 年 10 月 8 日至 9 日,这应该是小部件 1,而不是小部件 2 或 3。
我不确定如何获得所有这些案例。我可以提取在结束之前移入的小部件列表,以及在开始之前移出的小部件列表,但这也会在小部件 1 离开和返回时消除它。
我想我需要将其转换为带有小部件、位置、进入日期和退出日期的表格,但我不知道该怎么做?
编辑:正如所指出的,我的数据是错误的,我已经更新以将问题排在第 8 到第 9 位(这是第 4 到第 5 位)。因此,小部件 1 是该期间位置 101 中的唯一小部件。