Sql 使用左外部联接联接两个表并基于右表列填充新列值

Sql 使用左外部联接联接两个表并基于右表列填充新列值,sql,Sql,我有两个表exam_table和emp_table,在这里我想使用左外连接连接这两个表,我想使用右表中的exam_completed_date列创建一个名为new_column的新列 select id, exam_completed_date from exam_table; id exam_completed_date 0 12-01-2019 1 12-12-2019 select id, week_end_date from emp_table where id=0; id

我有两个表exam_table和emp_table,在这里我想使用左外连接连接这两个表,我想使用右表中的exam_completed_date列创建一个名为new_column的新列

select id, exam_completed_date from exam_table;

id exam_completed_date 
0  12-01-2019
1  12-12-2019

select id, week_end_date from emp_table where id=0;

id week_end_date
0  11-29-2019
0  11-30-2019
0  12-31-2019
0  12-01-2019
0  12-02-2019
0  12-03-2019
0  12-04-2019

select id, week_end_date, exam_completed_date 
from emp_table emp left outer join 
     exam_table exam 
     on (exam.id=emp.id and exam.exam_completed_date=emp.week_end_date)
where id=0

id week_end_date exam_completed_date 
0  11-29-2019    
0  11-30-2019
0  12-31-2019
0  12-01-2019     12-01-2019
0  12-02-2019    
0  12-03-2019    
0  12-04-2019   

我需要这样的输出

id week_end_date exam_completed_date  new_column
0  11-29-2019    
0  11-30-2019
0  12-31-2019
0  12-01-2019     12-01-2019           12-01-2019
0  12-02-2019                          12-01-2019
0  12-03-2019                          12-01-2019 
0  12-04-2019                          12-01-2019    


我想您需要一个累积最大窗口函数:

select id, week_end_date, exam_completed_date,
       max(exam_completed_date) over (partition by id order by week_end_date) as newcolumn
from emp_table emp left outer join
     exam_table exam 
     on exam.id=emp.id and
        exam.exam_completed_date = emp.week_end_date
where id = 0;

请标记您真正使用的唯一DBMS。我的错误…谢谢您的建议Yogesh!!谢谢你,戈登!!这是一个惊人的解决方案。我得到的是“?”而不是空值values@DppriyaReddy . . . 我不知道这些是从哪里来的。也许你应该问另一个问题,包括样本数据和期望的结果。