Помогите с запросом вставки, который заменяет оригинальный идентификатор с другим значением в SQL? - PullRequest
1 голос
/ 01 октября 2010

ОБНОВЛЕНИЕ : добавление еще Employee и ReplacementEmployee

Таблица Employee -

 EmployeeId   SerialNo
 ----------------------------- 
 1             11111  
 34            23233    
 23            13234  

Таблица ReplacementEmployee -

 ReplacementId   SerialNo
 ----------------------------- 
 11            11111  
 23            23233    
 13            13234  

Поэтому, когда я присоединяюсь к этим таблицам с серийным номером, есть что-то вроде этого Mapping Table -

 EmployeeId   ReplacementId
 ----------------------------- 
 1             11    
 34            23    
 23            13  

Итак, теперь я вставил все данные из таблицы примерно так OrignalTable, и он может иметь несколько значений для EmployeeId-

 EmployeeId   Name
 ----------------------------- 
 1             AAA    
 34            BBB    
 23            CCC  
 1             AAA

В таблицу с другой схемой, в основном с чем-то вроде этого InsertTable, и она может иметь несколько значений для EmployeeId-

ReplacementId       Name
------------------------------- 
 11                AAA   
 23                BBB
 13                CCC  
 11                AAA

Итак, если вы посмотрите на проблему, мне нужно insert данные из одной таблицы в другую, но мне нужно вставить другое поле, т.е. в этом случае мне нужно вставить corresponding ReplacementId вместо EmployeeId в новой таблице. Так может ли кто-нибудь подсказать мне, как мне написать такой запрос?

1 Ответ

2 голосов
/ 01 октября 2010

Попробуйте это:

INESRT INTO InsertTable (ReplacementID, [Name])
SELECT R.ReplacementID, O.[Name]
FROM OriginalTable O
INNER JOIN Employee E ON E.EmployeeID = O.EmployeeID
INNER JOIN ReplacementEmployee R ON E.SerialNo = R.SerialNo

И если вы хотите, чтобы ОДИН экземпляр каждого сотрудника во Вставляемой таблице, использовал SELECT DISTINCT вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...