Итак, у меня есть 2 таблицы,
Reg_table
student_ID Course_ID **Register**_status
1 co_01 enrolled
2 co_03 pending
3 co_05 cancelled
4 co_06 enrolled
Compl_table
student_ID Course_ID **Completion**_status
1 co_01 Attended
1 co_03
3 co_05
4 co_06 Attended
4 co_05
6 co_05
Я хотел бы добавить новый статус в Reg_table как «Final_status», смотря на «Compl_table», на основе комбинации «Student_ID» и «Course_ID» обеих таблиц. то есть
* Если учащийся «записался» на co_01, а затем «Attended» co_01, в окончательном статусе должно быть указано «Attended;
* Если «завершение_стата» пустое или в «Compl_table» отсутствует комбинация «Student_ID» и «Course_ID», окончательный статус должен совпадать с «Register_status», т. Е. «Зарегистрирован», «ожидает рассмотрения» или «отменен» ».
Поэтому таблица результатов должна выглядеть следующим образом:
student_ID Course_ID **Final**_status<br>
1 co_01 Attended
2 co_03 pending
3 co_05 cancelled
4 co_06 Attended
Возможно ли это? Заранее спасибо.
Добавлен код (извините, немного сложнее, чем в примере), куда я дошел до
with reg_table as
(select
b.schd_id
,b.DMN_ID
,b.ACT_CPNT_ID
,b.CPNT_TYP_ID
,b.SCHD_DESC
,b.FACILITY_ID
,a.STUD_ID
,a.ENRL_STAT_ID
,a.ENRL_DTE
,c.CMPL_STAT_ID
from
PA_ENROLL_SEAT a
,PA_SCHED b
,pa_cpnt_evthst c
where
a.schd_id = b.schd_id
and
b.ACT_CPNT_ID = c.CPNT_ID(+)
and
a.STUD_ID = c.STUD_ID(+)
)
update reg_table r
set CMPL_STAT_ID = (select CMPL_STAT_ID from pa_cpnt_evthst c where
c.stud_id = a.stud_id and c.CPNT_ID = b.ACT_CPNT_ID)
where exists (select 1
from pa_cpnt_evthst c
where c.stud_id = a.stud_id and
c.CPNT_ID = b.ACT_CPNT_ID and
c.CMPL_STAT_ID is not null
)