別名

2017-10-17 11 views
0

のSQL更新テーブルは、Distinct文でテーブルを更新することはできますか?私は別のテーブルからエントリをマップするここでクエリがあるが、table1は重複したエントリを持っています。明確なステートメントを削除すると、出力が間違っていました。別名

select distinct dm.[EE],dm.document_name,lu.* 
from Table1 as dm 
left join Table2 as lu on lu.[document_name]=dm.document_name 
where Doc_Count=2 

sql fiddleでサンプルシナリオを作成しました。 (http://sqlfiddle.com/#!6/634ef/1

CREATE TABLE TABLE1 
    ([EE] int, [Name] nvarchar(50),[Doc_Count] int, [document_name] nvarchar(50), [orginal_name] nvarchar(50)); 

INSERT INTO TABLE1 
    ([EE], [Name],[Doc_Count], [document_name]) 
VALUES 
    (001, 'Employee 1','2','Admin123.pdf'), 
    (001, 'Employee 1','2', 'Admin123.pdf'), 
    (002, 'Employee 2','2', 'password.pdf'), 
    (002, 'Employee 2','2', 'password.pdf') 


CREATE TABLE TABLE2 
    ([document_name] nvarchar(50), [original_name] nvarchar(50)); 

INSERT INTO TABLE2 
    ([document_name], [original_name]) 
VALUES 
    ('Admin123.pdf','test444.pdf'), 
    ('Admin123.pdf','test0124.pdf'), 
    ('password.pdf','hello1.pdf'), 
    ('password.pdf','hello2.pdf') 

結果テーブル:

EE document_name document_name original_name 
1 Admin123.pdf Admin123.pdf test0124.pdf 
1 Admin123.pdf Admin123.pdf test444.pdf 
2 password.pdf password.pdf hello1.pdf 
2 password.pdf password.pdf hello2.pdf 
+1

あなたのアップデートがあります探しているものですか? – Xedni

+0

出力が「間違っている」とはどういう意味ですか?あなたは何をしましたか?あなたは何を期待しましたか?何を手に入れましたか? –

+1

これを達成するには、2つのことを打ち負かす必要があります。最初のものはUPDATE FROMステートメントです(https://stackoverflow.com/questions/2334712/how-do-i-update-from-a-select-in-sql-サーバー)、2番目はPARTITION OVER(https://stackoverflow.com/questions/3317433/delete-duplicate-records-in-sql-server) – llouk

答えて

0

は、これはあなたが

SELECT * FROM TABLE2 INNER JOIN 
(
    SELECT DISTINCT [document_name] FROM TABLE1 
)T ON TABLE2.Document_Name = T.Document_Name 
+0

私が必要とするものは、更新ステートメントですが、そのselectステートメントは機能しています。 – yope

+0

更新するテーブルとカラムの詳細 –

+0

table1のカラム "[orginal_name]"をtable2 "Original name"の値で更新する必要があります。マッピングはtable1.document_name = table2.document_nameのようになります。 – yope