2013-10-09 165 views
0

我有一個公司對的數據集,並且想要檢查其他表的公司列表中是否包含列出的公司對的一個合夥人名稱或兩個合夥人名稱。將一個表的名稱與另一個表的列表進行比較

如果公司名稱列表中包含一個或兩個合作伙伴,則應將值1插入公司對列表的「EarlyStage」列中,否則爲0。

公司名稱的列表如下所示

Partner 

1View 
1-Net 
3T 
A&L 

看起來事務所對的列表如下,包括與新插入的值

Partner11 | Partner22 | EarlyStage 

Unisys  | Campu  |  0 
A&L  | Silva  |  1 
Jet  | 3T   |  1 
1-Net  | 1View  |  1 

EarlyStage的」價值「EarlyStage」列「在第一行中應該爲0,因爲Unisys和Campu合作伙伴都不包含在公司名稱列表中。 在其他行中,「EarlyStage」應取值1,因爲公司名稱列表中包含partner11(cp。row 2)或partner22(cp。row 3)或兩者(cp。row 3)。

我真的很感謝任何幫助來解決這個問題。

非常感謝您提前。

回答

1
update Pairs 
set EarlyStage = 1 
from Pairs 
    inner join Companies on Companies.Company in (Pairs.Partner11, Pairs.Partner22) 
+0

我們建議至少一個簡短的描述添加到您的答案,爲什麼你的代碼工作 – codeling

+0

感謝podiluska你的答案。你的代碼工作正常。如果合作伙伴名稱未包含在公司列表中,它只會錯過EarlyStage = 0。 – user2713440

+0

@ user2713440我會考慮預先將EarlyStage設置爲0以記錄所有記錄 – podiluska

0

試試這個:

INSERT INTO EarlyStage 
SELECT 
CASE WHEN Partner11 in (select name from Partner) 
THEN 1 
WHEN Partner22 in (select name from Partner) 
THEN 1 
ELSE 0 
END 
相關問題