【发布时间】:2020-07-20 01:28:48
【问题描述】:
这个问题是对我之前写的问题的修改:
How do I join two columns where date from Table A falls in between date from Table B in Oracle SQL?
@GordonLinoff 帮助我满意地回答了这个问题。
现在,我需要帮助来解决之前的问题。对上一题的修改是我在表A中多了两行:分别对应Joe Bryant和Jennifer Smith的行。
结果,我有以下两个表表A和表B:
表 A:
+-----------------+--------------+---------------+-------------+
| Date | Car | License_Plate | Owner |
+-----------------+--------------+---------------+-------------+
| 1/1/2020 11:51 | Ford F150 | 3892A84 | John Doe |
| 2/2/2020 12:43 | Ford F150 | 3892A84 | Jane Doe |
| 3/21/2020 8:14 | Ford F150 | 3892A84 | John Smith |
| 6/2/2020 13:59 | Ford F150 | 3892A84 | Joe Bryant |
| 1/1/2019 10:27 | Toyota Camry | 894A839 | Adam Baker |
| 7/3/2019 13:39 | Toyota Camry | 894A839 | Clark Davis |
| 9/24/2019 16:48 | Toyota Camry | 894A839 | Frank Evans |
| 2/14/2020 19:53 | Toyota Camry | 894A839 | William Johnson |
| 5/22/2020 9:44 | Toyota Camry | 894A839 | Jennifer Smith |
+-----------------+--------------+---------------+-------------+
表 B:
+------------------+---------------+-----------------------------+
| Date | License_Plate | Maintenance_Service_Mileage |
+------------------+---------------+-----------------------------+
| 1/14/2020 14:07 | 3892A84 | 5000 miles |
| 1/30/2020 17:14 | 3892A84 | 10000 miles |
| 2/11/2020 11:45 | 3892A84 | 15000 miles |
| 2/28/2020 13:36 | 3892A84 | 20000 miles |
| 3/4/2020 15:32 | 3892A84 | 25000 miles |
| 3/31/2020 10:24 | 3892A84 | 30000 miles |
| 4/16/2020 16:01 | 3892A84 | 35000 miles |
| 5/18/2020 14:14 | 3892A84 | 40000 miles |
| 1/25/2019 13:11 | 894A839 | 5000 miles |
| 6/27/2019 12:44 | 894A839 | 10000 miles |
| 9/1/2019 16:17 | 894A839 | 15000 miles |
| 10/31/2019 8:59 | 894A839 | 20000 miles |
| 11/22/2019 10:55 | 894A839 | 25000 miles |
| 12/19/2019 15:41 | 894A839 | 30000 miles |
| 1/2/2020 14:22 | 894A839 | 35000 miles |
| 2/13/2020 17:42 | 894A839 | 40000 miles |
| 3/7/2020 9:14 | 894A839 | 45000 miles |
| 4/13/2020 9:58 | 894A839 | 50000 miles |
+------------------+---------------+-----------------------------+
我想通过License_Plate 加入这两个表,使表 A 中的日期和表 B 中的日期符合以下条件:
-
Date在表 A Date 在表 B -
表 B 中的
Date连接到表 A 中符合标准 1 的最大可能日期 - 如果表 A 中的行在表 B 中没有匹配的行,则表 A 中的行应与表 B 中具有最大
Date的行连接,同时仍通过License_Plate连接。
结果表如下:
结果表:
+-----------------+--------------+-----------------+------------------+---------------+-----------------------------+
| Owner_Date | Car | Owner | Service_Date | License_Plate | Maintenance_Service_Mileage |
+-----------------+--------------+-----------------+------------------+---------------+-----------------------------+
| 1/1/2020 11:51 | Ford F150 | John Doe | 1/14/2020 14:07 | 3892A84 | 5000 miles |
| 1/1/2020 11:51 | Ford F150 | John Doe | 1/30/2020 17:14 | 3892A84 | 10000 miles |
| 2/2/2020 12:43 | Ford F150 | Jane Doe | 2/11/2020 11:45 | 3892A84 | 15000 miles |
| 2/2/2020 12:43 | Ford F150 | Jane Doe | 2/28/2020 13:36 | 3892A84 | 20000 miles |
| 2/2/2020 12:43 | Ford F150 | Jane Doe | 3/4/2020 15:32 | 3892A84 | 25000 miles |
| 3/21/2020 8:14 | Ford F150 | John Smith | 3/31/2020 10:24 | 3892A84 | 30000 miles |
| 3/21/2020 8:14 | Ford F150 | John Smith | 4/16/2020 16:01 | 3892A84 | 35000 miles |
| 3/21/2020 8:14 | Ford F150 | John Smith | 5/18/2020 14:14 | 3892A84 | 40000 miles |
| 6/2/2020 13:59 | Ford F150 | Joe Bryant | 5/18/2020 14:14 | 3892A84 | 40000 miles |
| 1/1/2019 10:27 | Toyota Camry | Adam Baker | 1/25/2019 13:11 | 894A839 | 5000 miles |
| 1/1/2019 10:27 | Toyota Camry | Adam Baker | 6/27/2019 12:44 | 894A839 | 10000 miles |
| 7/3/2019 13:39 | Toyota Camry | Clark Davis | 9/1/2019 16:17 | 894A839 | 15000 miles |
| 9/24/2019 16:48 | Toyota Camry | Frank Evans | 10/31/2019 8:59 | 894A839 | 20000 miles |
| 9/24/2019 16:48 | Toyota Camry | Frank Evans | 11/22/2019 10:55 | 894A839 | 25000 miles |
| 9/24/2019 16:48 | Toyota Camry | Frank Evans | 12/19/2019 15:41 | 894A839 | 30000 miles |
| 9/24/2019 16:48 | Toyota Camry | Frank Evans | 1/2/2020 14:22 | 894A839 | 35000 miles |
| 9/24/2019 16:48 | Toyota Camry | Frank Evans | 2/13/2020 17:42 | 894A839 | 40000 miles |
| 2/14/2020 19:53 | Toyota Camry | William Johnson | 3/7/2020 9:14 | 894A839 | 45000 miles |
| 2/14/2020 19:53 | Toyota Camry | William Johnson | 4/13/2020 9:58 | 894A839 | 50000 miles |
| 5/22/2020 9:44 | Toyota Camry | Jennifer Smith | 4/13/2020 9:58 | 894A839 | 50000 miles |
+-----------------+--------------+-----------------+------------------+---------------+-----------------------------+
谁能告诉我如何在 Oracle SQL 中做到这一点?
任何帮助将不胜感激!
【问题讨论】:
标签: oracle