Sql server 查找两个SQL Server表之间的重复项,并在另一个表中返回这两个值,然后更新为重复项

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); 但到目前为止,它只返回一个值

我有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);
但到目前为止,它只返回一个值

我还需要查询返回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