我通过R。
中的RSQLite包使用sqlite我有两张桌子: 表1列出了重要的专栏' PERMCO'和' Reporting_Period'。 (' Reporting_Period'是整数日期)
表2列出了重要的专栏' PERMCO'和' date'。 ('日期'是整数日期)
我想要将表1作为左表进行左连接。 事情是' PERMCO'在第二个表中不是唯一的(行方式,多个重复)。
对于表1的给定行,我希望第二个表中的匹配是表2中的行,其匹配的PERMCO在绝对日期最接近' Reporting_Period'在第一个表中。
不确定如何做到这一点......
谢谢
答案 0 :(得分:0)
Idea是一个相关的子查询,用于从table1中的Reporting_Period获取table2中最接近的一天
SELECT t1.*, t2.*
FROM table1 t1
LEFT JOIN table2 t2
ON t1.permco = t2.permco
WHERE ABS(t2."date" - t1.Reporting_Period) = (SELECT MIN(ABS("date" - t1.Reporting_Period) )
FROM table2
WHERE permco = t1.permco
)
OR t2.permco IS NULL --because you want a left join
;
我对Sqlite并不熟悉,因此您可能需要更改查询以减去两个日期。