Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pandas、python或oracle的滚动连接_Python_Oracle_Pandas_Join - Fatal编程技术网

pandas、python或oracle的滚动连接

pandas、python或oracle的滚动连接,python,oracle,pandas,join,Python,Oracle,Pandas,Join,我有一个关于Oracle或Python中的滚动连接的问题 我有一张价目表,日期,材料 我有另一个表,它类似于明细表,有报价、年份日期、材料、公司等等 我想得到第二个表中第一个表中最新材料的标价 基本上,我想比较每种材料的报价和该日期或之前最接近的给定标价 有人能帮忙吗,我听说过滚动联接,但不知道如何在oracle或Pandas中实现这一点您要求的结果是不明确的(您希望从哪些列表中获得最新信息?),但这里有几个想法: 在Oracle中执行此操作的愚蠢方法是:从一个或另一个表中提取最新日期,然后执行

我有一个关于Oracle或Python中的滚动连接的问题

我有一张价目表,日期,材料

我有另一个表,它类似于明细表,有报价、年份日期、材料、公司等等

我想得到第二个表中第一个表中最新材料的标价

基本上,我想比较每种材料的报价和该日期或之前最接近的给定标价


有人能帮忙吗,我听说过滚动联接,但不知道如何在oracle或Pandas中实现这一点

您要求的结果是不明确的(您希望从哪些列表中获得最新信息?),但这里有几个想法:

在Oracle中执行此操作的愚蠢方法是:从一个或另一个表中提取最新日期,然后执行联接:

select material, company, ..., quote_price, quote_date,
       table1_latest.max_list_date, table1_latest.list_price 
from detail_table

left outer join

(select max(date) max_list_date, list_price, material from table1
 group by list_price, material) table1_latest

 ON detail_table.material = table1_latest.material
编辑:进行“完全”联接,然后找出日期之间的差异,使用最小的差异

select min(abs(days_diff)) min_days_diff, material, list_price,
       list_date, quote_date as closest_quote_date, quote_price as closest_quote_price
       from
       (select list_table.material, list_table.list_price,
               list_table.list_date, quote_table.quote_price,
               quote_table.quote_date, 
               (quote_table.quote_date-list_table.list_date) days_diff
        from list_table
        left outer join
        quote_table
        on list_table.material = quote_table.material) joined_table
group by material, list_price, list_date, quote_date, quote_price

左侧外部联接获取每个标价的所有可用报价。只要这两个日期是Oracle日期类型,就可以进行减法运算;这将产生日差。

请阅读并相应编辑您的帖子。在此之前,您已经提出了四个问题,但没有接受任何有用的答案。我不相信你了解这个网站是如何运作的。请阅读“否”,我想要详细表中某个特定日期的数据。这就像我的详细表在7月21日有某个产品的价格,所以我想看看,其他表上或之前最接近该数据的价格是多少,并将其放在我的表旁