如果匹配日期不匹配,如何在日期列上查询两个表'不存在,那么我们必须在下一个最长日期加入



我有两个类似的表

表1

id   DOB         name
1   01/01/1990   victor
2   01/01/1991   deb
3   01/01/1992   Mat

表2

id   Date         amount
1   01/01/1990    100
2   12/11/1990    700
2   12/30/1990    455
2   01/02/2014      7000
3   12/30/1991    800
3   06/22/1991    332

我希望输出如下

id   DOB         name.    amount
1   01/01/1990   victor   100
2   01/01/1991   deb      455
3   01/01/1992   Mat      800

我们必须连接表1中的id列和DOB列以及表2中的日期列。如果日期不匹配,那么我们必须加入下一个最长日期列

提前感谢

您可以使用以下查询-我想,如果dob和日期栏不匹配,我们应该选择和最长日期相关的金额。请澄清,以便我可以相应地更改sql。

select id, dob, name, amount 
from
(select a.id,a,dob,a.name,b.amount,b.date,
row_number() over(partition by a.id order by a.id ,b.date desc) rn
from
table1 a
left join table2 b on a.id = b.id ) rs
where case when date = dob then 1 else rs.rn end=1

相关内容

最新更新