2015-11-02 17 views
0

我有兩個表:更新根據查詢的字段導致

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_TEST]在字段**ERPT_IsDuplicate**會有如果EmployeeERP表中的EMER_EmployeeID重複,則返回1(int),否則返回0(int)。

你能幫我嗎?

+0

請標記dbms使用。 – jarlh

+0

你是什麼意思是「重複」? –

+0

EMER_EmployeeNumber的值在EmployeeERP表中找到一條記錄。 – oco

回答

0

如果你想在標誌指的是在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,根據你的語法。