我需要根据以下条件将table_work中的value_check列更新为N
将value_check更新为N
我能够用2条更新语句来做到这一点,有一种简单的方法可以只使用一条更新语句吗?也许在存在条件的地方使用多个?
这是我现在使用的2个更新:
UPDATE 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)
UPDATE 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')
[第一个查询的NOT EXISTS
标准可能可以在第二个查询中通过LEFT JOIN
进行仿真,并检查contact.employee_id IS NULL
(不匹配)