Bạn có thể thử với bên dưới,
Tôi đã sử dụng coalesce
trong trường hợp không có kết quả phù hợp với cột queue
nó sẽ coi nó là null và giá trị 2
được thực hiện thay thế.
update product pd
set pd.age = case
when pd.exittime != null then
(sysdate - pd.exittime)
else
coalesce((select (sysdate - pd.entrytime)
from department dp
where pd.queue = dp.queue
and pd.id = dp.id)
,2)
end
where pd.id > 1
and pd.status in ('1','7','2','5')
and exists (select 1
from department dp
where pd.id = dp.id
and pd.currentstatus = dp.currentstatus
and pd.activity = dp.activity);