Я использую оператор слияния, чтобы обновить количество пройденных курсов в таблице ModuleEnrollment
. Это работает, но если курс удален из Employee, он все равно остается на прежнем уровне. Есть ли способ включить в состояние слияния, чтобы возвратить 0 для любого EmployeeID
, не включенного в таблицу CoursesComplete
.
MERGE [dbo].[ModuleEnrollment] as ME
USING [dbo].[CoursesComplete]AS CC
ON ME.[EmployeeID] = CC.[EmployeeID] AND ME.[ModuleID] = CC.[ModuleID]
WHEN MATCHED THEN
UPDATE SET ME.[CoursesComplete]=CC.[CoursesComplete]
WHEN NOT MATCHED BY TARGET THEN
INSERT([EmployeeID],[ModuleID],[CoursesComplete]) VALUES(CC.
[EmployeeID],CC.[ModuleID],CC.[CoursesComplete]);
GO