Sql server 查找两个SQL Server表之间的重复项,并在另一个表中返回这两个值,然后更新为重复项
我有3个SQL Server表。表1是TBL历史,第二个是tblTemp,其中每日Excel上传到,3是TBL副本 样本数据: TBL历史: tblTemp: 我编写了一个查询来返回重复的值Sql server 查找两个SQL Server表之间的重复项,并在另一个表中返回这两个值,然后更新为重复项,sql-server,tsql,Sql Server,Tsql,我有3个SQL Server表。表1是TBL历史,第二个是tblTemp,其中每日Excel上传到,3是TBL副本 样本数据: TBL历史: tblTemp: 我编写了一个查询来返回重复的值 select PostingDate, DocumentDate, Reference, URN, St, Check1 from tblTemp where Check1 in (select Check1 from tblHistory); 但到目前为止,它只返回一个值
select
PostingDate, DocumentDate, Reference, URN, St, Check1
from
tblTemp
where
Check1 in (select Check1 from tblHistory);
但到目前为止,它只返回一个值
我还需要查询返回TBLDupplicate中的两个值
请帮忙
谢谢
通过此请求,您将返回tblTemp和tblHistory中的所有数据(如果数据在另一个表中)。您的问题不清楚。你能扩展更多吗?如果表中只有1个值,它将只返回1个值。看看是否可以在示例数据中添加更多值。您的意思是需要在同一个查询中返回temp中的值和历史记录中的值吗?通过简单的内部联接用法,您可以返回仅存在于目标表中的值,我相信您可以在此处使用。选择*来自TBL历史相交选择*来自TBL公司关于如何将结果导出到另一个表的想法,请。感谢以上查询工作正常。目标表是TBLDupplicate。如何将结果导出到TBLDupplicate。您只需将INSERT添加到表引用中。这正是我所需要的。谢谢Samuel。在Stackoverflow上,您可以给人们提供有用的答案来感谢他们,并从所有答案中选择任何一个。您知道我为什么会收到以下错误消息Msg 213,级别16,状态1,第1行列名或提供的值数与表定义不匹配吗。
PostingDate DocumentDate Reference URN Supplier St Check1
-------------------------------------------------------------------------
2018-10-05 12/09/2018 12345 12345 12345 2 12/09/201812345
select
PostingDate, DocumentDate, Reference, URN, St, Check1
from
tblTemp
where
Check1 in (select Check1 from tblHistory);
INSERT INTO tblDuplicate
SELECT * FROM (
SELECT h.PostingDate, h.DocumentDate, h.Reference, h.URN, h.St, h.Check1
FROM tblHistory h
WHERE h.Check1 IN(SELECT Check1 FROM tblTemp)
UNION
SELECT t.PostingDate, t.DocumentDate, t.Reference, t.URN, t.St, t.Check1
FROM tblTemp t
WHERE t.Check1 IN(SELECT Check1 FROM tblHistory)
) as AllData