根据日期比较更新数据,并将最新/最早的日期数据选择到主表

时间:2016-07-24 13:48:08

标签: oracle

我有两个表,Job_Events和Comp_Events,如下所示:

Job_events

userid eventstartdt         jobcode
    10 2014-08-18 00:00:00  j1
    10 2015-07-27 00:00:00  j1
    10 2015-03-23 00:00:00  j2
    10 2015-12-28 00:00:00  j3 
    10 2015-03-23 00:00:00  j4
    10 2015-03-23 00:00:00  j5 

Comp_Events

userid eventstartdt        salary
    10 2014-08-11 00:00:00   1000
    10 2015-03-23 00:00:00   1525
    10 2015-06-21 00:00:00    500
    10 2016-03-21 00:00:00   2000

预期产出:

jobcompevents

userid jobeventstartdt      jobcode salary
    10 2014-08-18 00:00:00  j1        1000
    10 2015-07-27 00:00:00  j1         500
    10 2015-03-23 00:00:00  j2        1525
    10 2015-12-28 00:00:00  j3         500
    10 2015-03-23 00:00:00  j4        1525
    10 2015-03-23 00:00:00  j5        1525

PS:我无法基于YYYYMM格式加入,因为基于月份的数据可能无法使用。我应该为该工作记录挑选最新/最早的竞争对手,以便将其与一条记录合并。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我为其他测试创建了更多输入数据。查询应该能够按JContainer分隔输入(和输出),并且对于作业的开始日期早于userid的所有开始日期,它应显示NULL salary {1}}表格中的{1}}。

请注意,我编辑了你的帖子以纠正大量的错别字;如果这直接来自您的实际设置,您将需要在那里纠正它们。

userid

<强>输出

Comp_events