CREATE TABLE #tempSOURCE(Item_Group INT,NAME VARCHAR(50))
INSERT INTO #tempSOURCE(Item_Group,[NAME])VALUES(1000,'Joe')
INSERT INTO #tempSOURCE(Item_Group,[NAME])VALUES(1001,'Jill')
INSERT INTO #tempSOURCE(Item_Group,[NAME])VALUES(1002,'Joanna')
INSERT INTO #tempSOURCE(Item_Group,[NAME])VALUES(222222,'James')
INSERT INTO #tempSOURCE(Item_Group,[NAME])VALUES(333333,'John')
CREATE TABLE #tempDESTINATION(Item INT,Destgroup INT,Person VARCHAR(50))
INSERT INTO #tempDESTINATION(Item, Destgroup, Person) VALUES(1000,000001,'')
INSERT INTO #tempDESTINATION(Item, Destgroup, Person) VALUES(1001,000002,'')
INSERT INTO #tempDESTINATION(Item, Destgroup, Person) VALUES(9998,222222,'')
INSERT INTO #tempDESTINATION(Item, Destgroup, Person) VALUES(9999,333333,'')
SELECT * FROM #tempSOURCE
SELECT * FROM #tempDESTINATION
UPDATE b
SET b.Person= CASE WHEN a.Item_Group=b.Item THEN a.Name ELSE
CASE WHEN b.Destgroup=a.Item_Group THEN a.Name END END
FROM #tempSOURCE a inner join #tempDESTINATION b
ON a.Item_Group=b.Item
OR b.Destgroup=a.Item_Group
SELECT * FROM #tempDESTINATION
Примечание: - здесь я использую .. in #tempDESTINATION Имя столбца группы рассылки вместо Group ..because. .Group - зарезервированное ключевое слово ...
здесь я использую соединение ... вместо проверки длины данных столбца .. вы получите вывод