Sql 如果员工没有';不存在
我正试图编写一个脚本,将数据从表1插入表2,仅当员工在表1中而不在表2中,或者如果员工信息从表1更改为表2并添加了更改日期Sql 如果员工没有';不存在,sql,sql-update,sql-insert,Sql,Sql Update,Sql Insert,我正试图编写一个脚本,将数据从表1插入表2,仅当员工在表1中而不在表2中,或者如果员工信息从表1更改为表2并添加了更改日期 表1:员工编号、姓名、受雇日期和期限 表2:EmployeeNumber、Name、HireDate、Termdate、ChangeDate(更新到db的日期)getdate() 样本数据: 表1: EmployeeNumber - Name - HireDate - TermDate ------------------------------------------
- 表1:员工编号、姓名、受雇日期和期限
- 表2:EmployeeNumber、Name、HireDate、Termdate、ChangeDate(更新到db的日期)getdate()
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
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
我尝试了几次插入和更新查询,但都没有成功
此查询用于插入不存在的记录
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应如下所示:
表2:
EmployeeNumber - Name - HireDate - TermDate - ChangeDate
---------------------------------------------------------
1234 - Ted - 8-12-1980 -NULL - 8-12-1980
9632 - Josh - 1-1-2019 - NULL - 1-1-2019
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
我不知道你在问什么,但我认为你正在寻找的方法是 祝你好运