根据查询结果更新字段

Update a field according to a query results

我有两个 table:

Table 1 - [EmployeeERP]:

[EMER_ID] - My Own Identity - primary key
[EMER_CreateDate]
[EMER_EmployeeID]
[EMER_EmployeeNumber]



Table 2 - [ERP_TEST]:

[ERPT_ID] -  My Own Identity - primary key
[ERPT_EmployeeNumber]
[ERPT_EmployeeID]
[ERPT_IsDuplicate]

我写了这个命令来从一个 table 获取数据到另一个:

INSERT INTO [dbo].[ERP_TEST] ([ERPT_ID],[ERPT_EmployeeNumber],[ERPT_EmployeeID])
select [EMER_ID],[EMER_EmployeeNumber],[EMER_EmployeeID] from [dbo].[EmployeeERP]

后来我写了这个查询:

SELECT * 
FROM (
select [EMER_EmployeeID] , count(*) as cnt
from  [dbo].[EmployeeERP]
group by [EMER_EmployeeID]
) as T
where T.cnt > 1

现在,我希望在 table [ERP_TEST] 字段 **ERPT_IsDuplicate** 中,如果 EmployeeERP 中的 EMER_EmployeeID 将有 1 (int) =] table 是重复的,否则为 0 (int)。

你能帮帮我吗?

如果您希望标志引用 EmployeeERP table 中重复的员工 ID,则可以使用 join:

update t
    set erpt_isduplicate = (case when e.cnt > 1 then 1 else 0 end)
    from erp_test t left join
         (select [EMER_EmployeeID], count(*) as cnt
          from  [dbo].[EmployeeERP]
          group by [EMER_EmployeeID]
         ) e
         on e.emer_employeeid = t.ERPT_EmployeeID;

根据您的语法,我假设您正在使用 SQL 服务器。