sql-server - SELECT DISTINCT 并进行重复检查

标签 sql-server t-sql

我有以下代码。

INSERT INTO [dbo].[Employees_Dim] ([EmpNo], [EmpName])
SELECT DISTINCT st.[EmpNo], [EmpName]
FROM [dbo].[EEMasterData] st

我想从主表中取出两列来创建员工维度。 (对于来自该主表的其他维度,这将被复制)。

我希望能够在 SSIS 包中运行脚本,该脚本将查看主数据、引用 Employee_Dim 并仅根据员工编号添加新员工。

我知道我错过了一些东西,只是不知道是什么。

更新:我的问题是,我应该在上述脚本中添加什么,该脚本将使用 EmpNo 作为键仅将新添加的员工从 EEMasterData 表插入到 EmployeeDim 中。

最佳答案

... and only add new employees ...

如果这是您面临的问题,请仅选择维度表中尚不存在的条目:

INSERT INTO [dbo].[Employees_Dim] ([EmpNo], [EmpName])
SELECT DISTINCT st.[EmpNo], [EmpName]
FROM [dbo].[EEMasterData] st
WHERE st.[EmpNo] NOT IN (SELECT EmpNo FROM Employees_Dim)

(假设 EmpNo 对于每个员工来说都是唯一的)

关于sql-server - SELECT DISTINCT 并进行重复检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17686277/

相关文章:

sql-server - 插入带有前缀和递增数字的行

sql-server - tsql for xml,复杂的 xml

sql-server - 如何查找单个存储过程中是否存在表名列表?

sql - T-SQL(azure 兼容)从一列中获取值作为一行数据

sql-server - SQL 在 where 子句中使用 CASE

sql - 从表中检索自动递增列值,其中单个存储过程中有多个插入/选择

sql - 使用 Microsoft SQL Server Migration Assistant for Access 将 Access 数据库转换为 MSSQL 数据库

sql-server - 使用 bash 脚本连接到远程 SQL Server

sql-server - Sql Server XML 类型的列重复条目检测

c# - 回滚对 Entity Framework .NET 中的数据库所做的更改