我正在尝试连接 2 个表以查找下一个交货日期之前的天数。
一张表是零件号和进货日期
part restock_date
123 01/01/15
123 04/01/15
123 06/30/15
123 09/28/15
234 01/25/15
234 04/25/15
234 07/24/15
234 10/22/15
另一个表是零件号和分析日期
part analysis_date
123 02/12/15
123 03/29/15
123 05/13/15
123 06/27/15
234 03/23/15
234 05/07/15
234 06/21/15
234 08/05/15
我正在尝试创建一个连接来显示给定分析日期的下一个补货日期,以便我可以计算分析日期和下一个补货日期之间的天数差异。
part restock_date analysis_date days_to_restock
123 04/01/15 02/12/15 48
123 04/01/15 03/29/15 3
123 06/30/15 05/13/15 48
123 06/30/15 06/27/15 3
234 04/25/15 03/23/15 33
234 07/24/15 05/07/15 78
234 07/24/15 06/21/15 33
234 10/22/15 08/05/15 78
有什么建议吗?
最佳答案
你可以通过横向连接来解决这个问题:
select t2.*, t1.restock_date,
(t1.restock_date - t2.analysis_date) as diff
from table2 t2 left join lateral
(select t1.*
from table1 t1
where t2.part = t1.part and t2.analysis_date <= t1.restock_date
order by t1.restock_date
limit 1
) t1;
关于sql - postgresql join on max(date) 和另一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37645605/