是否有可能使用Distinct语句对表进行更新?我在这里有一个查询将映射来自另一个表的条目,但table1有重复的条目。删除不同的语句会导致输出错误。具有不同的SQL更新表
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小提琴中做了一个示例场景。 (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
哪里是你的更新? – Xedni
你是什么意思输出是“错误的”?你跑了什么?你期望什么?你得到了什么? –
为了达到这个目的,你需要下2个东西,第一个是UPDATE FROM语句(https://stackoverflow.com/questions/2334712/how-do-i-update-from-a-select-in-sql-服务器),第二个是PARTITION OVER(https://stackoverflow.com/questions/3317433/delete-duplicate-records-in-sql-server) – llouk