Мне нужно обновить столбец value_check в table_work как N на основе следующих условий
Обновить value_check как N
- если employee_id в table_work не имеет записи employee_manager_id (пустой/нулевой или вообще нет записи) в таблице employee_contact, когда getdate находится между contact_eff_dt и contact_end_dt (присоединение с использованием employee_id)
- если employee_id в table_work имеет запись в таблице employee_contact, но employee_manager_id work_location_state не является NJ, NY или ME. В таблице mgr_work_location есть столбцы employee_manager_id и work_location_state.
Я могу сделать это с двумя операторами обновления. Есть ли простой способ использовать только один оператор обновления? Может быть, используя несколько условий, где существует?
Вот 2 обновления, которые я использую сейчас:
ОБНОВЛЕНИЕ 1
Update work
set work.value_check = 'N'
From table_work work
Where wotk.value_check = 'Y'
And not exists (select employee_manager_id
from employees_contact contact
Where contact.employee_id = work.employee_id
And getdate() between contact.eff_dt and contact.end_dt)
ОБНОВЛЕНИЕ 2
Update work
set work.value_check = 'N'
From table_work work
Join employees_contact contact On contact.employee_id= work.employee_id
Join mgr_work_location mgr On mgr.mgr_id = contact.employee_manager_id
Where work.value_check = 'Y'
And getdate() between contact.eff_dt
and contact.end_dt And mgr.work_location_state not in ('NJ','NY,'ME')