SQL скрипт для вставки данных из Таблицы1 в Таблицу2, если сотрудник не существует

#sql #sql-update #sql-insert

#sql #sql-обновление #sql-вставка

Вопрос:

Я пытаюсь написать скрипт для вставки данных из Table1 в Table2, только если Employee находится в Table1, а не в Table2, или если информация о сотруднике изменяется с Table1 на Table2, добавляя changedate.

  • Таблица1: номер сотрудника, имя, дата найма, срок действия
  • Таблица2: номер сотрудника, имя, дата найма, срок действия, дата изменения (дата обновления базы данных) getdate()

Пример данных:

Table1:

 EmployeeNumber - Name - HireDate - TermDate
-------------------------------------------
1234           - Ted  - 8-12-1980 -  NULL
9632           - Josh - 1-1-2019  - 3-29-2019
5678           - Jeff - 3-29-2019 - NULL 
  

Таблица2:

 EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234          -  Ted - 8-12-1980 -NULL -      8-12-1980
9632          -  Josh - 1-1-2019 - NULL -      1-1-2019
  

Я пробовал несколько запросов Insert и Update, но безуспешно.

Этот запрос работает для вставки записи, которая не существует.

 INSERT INTO Table2 ([EmployeeNumber], [Name], [HireDate], [Termdate], [ChangeDate])
    SELECT 
        *, GETDATE() AS 'ChangeDate'
    FROM 
        Table1
    WHERE 
        NOT EXISTS (SELECT [EmployeeNumber] 
                    FROM Table2 
                    WHERE Table1.[EmployeeNumber] = Table2.[EmployeeNumber])
  

После выполнения запроса Table2 должна выглядеть следующим образом:

Таблица2:

 EmployeeNumber - Name - HireDate - TermDate  - ChangeDate
---------------------------------------------------------
1234            - Ted  -   8-12-1980 - NULL      -      8-12-1980
9632            - Josh -   1-1-2019  - NULL      -      1-1-2019
9632            - Josh -   1-1-2019  - 3-26-2019 -      3-29-2019
5678            - Jeff -   3-29-2019 - NULL      -      3-29-2019
  

Ответ №1:

Я не уверен, о чем вы спрашиваете, но я думаю, что метод, который вы ищете, — это ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ

Удачи!