SQL-скрипт для вставки данных из таблицы 1 в таблицу 2, если сотрудник не существует - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь написать скрипт для вставки данных из Таблицы1 в Таблицу2, только если Сотрудник находится в Таблице 1, а не в Таблице2 или если Информация о Сотруднике изменяется с Таблицы1 на Таблицу2, добавляя изменение.

  • Таблица1: номер сотрудника, имя, дата найма, дата окончания срока действия
  • Таблица2: EmployeeNumber, Имя, HireDate, Termdate, ChangeDate (дата обновления до дБ) getdate ()

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

Таблица 1:

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

Table2:

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

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

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

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])

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

Table2:

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 Ответ

0 голосов
/ 29 марта 2019

Я не уверен, что вы спрашиваете, но я думаю, что метод, который вы ищете, это INNER JOIN

Удачи!

...