gpt4 book ai didi

sql - 无键连接表

转载 作者:行者123 更新时间:2023-12-04 05:33:48 24 4
gpt4 key购买 nike

我有一种情况,我想在 Oracle 8i 中连接两个没有键来链接它们的表。我有包含一些信息和日期时间的表 A 和包含一些信息和日期时间的表 B。我想要的是表 A 中的所有内容以及表 A 中表 B 中的相应数据,我将在下面进行模拟:

Table A                     |   Table B
John 31/07/2012 10:50:32 | Travel to Library 31/07/2012 10:48:23
John 31/07/2012 10:55:49 | Arrive at Library 31/07/2012 11:02:34
John 31/07/2012 11:00:15 | Reading Book 31/07/2012 11:07:11
John 31/07/2012 11:05:23 |
John 31/07/2012 11:10:12 |

我想要创建的是:
John   31/07/2012 10:50:32   Travel to Library   
John 31/07/2012 10:55:49 Travel to Library
John 31/07/2012 11:00:15 Travel to Library
John 31/07/2012 11:05:23 Arrive at Library
John 31/07/2012 11:10:12 Reading Book

可能有人怀疑,这与包含我每 5 分钟收到一次的 GPS 数据的表和另一个完全不相关的列出事件的表有关。到目前为止,我最接近的尝试是分两部分编写查询,第一部分是查看事件并返回事件日期和下一个事件日期,然后根据相关人员的姓名连接两个表并返回 GPS 数据当它在两个事件日期之间时,我还使用 GPS 日期和下一个 GPS 日期以相反的方式进行了操作,如果事件在这两个日期之间,则返回事件。两种方法都不会返回任何一组数据的所有内容。

我觉得我的主要故障在于我使用闰/滞后函数来获得日期时间之前或之后。也许我只是忽略了显而易见的答案。

我真的可以使用一些帮助来指出我正确的方向。

最佳答案

试试这个:

select Name, Time, Activity from
(
select
a.Name, a.Time, b.Activity,
row_number() over (partition by a.Time order by b.time desc) as rn
from TableA a, TableB b
where a.time >= b.time and a.Name = b.Name
)
where rn = 1;

注意:我假设 GPS 数据在表中也带有一个名称。

关于sql - 无键连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com