我有3个SQL Server表。表#1是tblHistory
,第二个是tblTemp
,每天的Excel都上传到其中,表#3是tblDuplicate
。
样本数据:
tblHistory :
PostingDate DocumentDate Reference URN Supplier St Check1
-------------------------------------------------------------------------
2018-11-05 12/09/2018 12345 12345 12345 2 12/09/201812345
tblTemp :
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);
但到目前为止,它仅返回一个值。
我还需要查询以返回tblDuplicate
中的两个值。
请帮助。
谢谢
答案 0 :(得分:2)
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
使用此请求,如果另一个表中的数据,则返回tblTemp和tblHistory中的所有数据。