2017-09-15 14 views
0

私は、値が2つの異なるテーブルから存在する場合、メインテーブルを更新するSQLクエリを作成する方法を理解しようとしていますか?値が2つの異なるテーブルから存在する場合、UpdateMainテーブルへのSQL-方法?

例:

Table1 (Main) 
Employee Number 
Name 
First Name 
Document Name 
Filename 
Original fileName 
DL_Status 

Table 2 (list table) 
Employee Number 
Document Name 
Original Filename 

Table 3(DIR list) 
Original fileName 
created 
extension file name 

出力: DL_Statusは「完了」としてマークされなければならないと、元のファイル名が表3から存在する場合にのみ、元のファイル名は、表2のエントリーから移入されますか?

+3

あなたのロジックを説明し、いくつかのデータを表示してください。あなたの質問は私には分かりません。 –

+0

多分、このレベルのデータ冗長性を取り除くことを検討してください – Magisch

+0

2つの疑問符がありますが、あなたの質問は何ですか? – Sami

答えて

0

テーブル2とテーブル3に結合を適用してから、メインテーブルにデータを更新するスクリプトを書くことができます。 注:データが明確に記述されている場合は、より具体的な回答になります。

0

はこのような何かを試してみてください:

update table1 
set dl_status = a.dl_status, 
Original_Filename =a.Original_Filename 
from 
(select t2.Employee Number, 'Completed' as dl_status,t2.Original_Filename 
from table2 t2,table3 t3 
where t2.Original_Filename= t3.Original_Filename) a 
where a.Employee Number = table1.Employee Number 
0

おそらく

UPDATE m 
SET [DL_Status] ='Completed', 
    [Original fileName] = f.[Original fileName] 
FROM [Main] m 
JOIN [list table] l ON l.[Employee Number] = m.[Employee Number] AND l.[Document Name] = m.[Document Name] 
JOIN [DIR list] f ON l.[Original fileName] = f.[Original fileName] 
-- optionally 
WHERE m.[DL_Status] <> 'Completed' OR m.[Original fileName] <> f.[Original fileName] 
関連する問題