我已经确定了培训人员的重叠日期,这些培训人员在开始日期和结束日期之间对用户进行了培训。现在,我需要确定其中一位培训师的结束日期与下一位培训师的开始日期相同的USER_ID。我需要将它们标记为“ Y”和“ N”。
当某些培训师的开始日期和结束日期与USER_ID的先前培训师的结束日期相同时,我遇到了一个问题。
UPDATE #SERVICE A
SET DIS_ADM_MATCH = CASE WHEN B.FROM_DATE = A.TO_DATE OR
A.FROM_DATE = B.TO_DATE
THEN 'Y' ELSE 'N' END
FROM #SERVICE A
INNER JOIN #SERVICE B
ON A.USER_ID = B.USER_ID
AND A.TRAINER_ID <> B.TRAINER_ID;
答案 0 :(得分:1)
我想你想要
update service
set DIS_ADM_MATCH = (case when exists (select 1
from service s2
where s2.user_id = service.user_id and
s2.from_date = service.to_date
)
then 'Y' else 'N'
end);