Sql 根据查询结果更新字段
我有两张桌子:Sql 根据查询结果更新字段,sql,sql-server,insert,Sql,Sql Server,Insert,我有两张桌子: 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_I
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]
我编写此命令是为了将数据从一个表转移到另一个表:
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
现在,我希望在[ERP\u TEST]
表中的**ERP\u是重复的**
字段中,如果EMER\u EmployeeID
表中的EMER\u EmployeeID是重复的,则会有1(int),否则为0(int)
你能帮我吗 如果希望标志引用在EmployeeERP
表中重复的员工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 Server。请标记dbms use。您所说的“重复”是什么意思?EMER_EmployeeNumber的值在EmployeeERP表中的多个记录中找到。