从两个表中删除重复项并将其移到新表中

时间:2013-11-08 08:58:10

标签: sql duplicates ms-access-2007

我可以使用SQL将数据提取到两个现有表中的任何重复的新表中吗?

下表是我访问之前从ERP系统拍摄的快照。

PRE
CO          Otp Los His Whs Fac
11889204    C20 22  66  1BA 1BA
11889132    C23 22  66  1BA 1BA
11888835    C20 23  66  1BA 1BA
11887689    C20 22  66  1BA 1BA
11884977    C20 22  22  1BA 1BA
11884624    C20 22  99  1BA 1BA

下表是我访问后拍摄的快照。

POST
CO          Otp Los His Whs Fac
11889204    C20 22  66  1BA 1BA
11889132    C23 22  66  1BA 1BA
11888835    C20 23  66  1BA 1BA
11882804    C20 22  77  1BA 1BA
11882724    C20 22  77  1BA 1BA
11882521    C20 22  77  1BA 1BA
11882431    C20 22  22  1BA 1BA
11881410    C20 22  22  1BA 1BA
11881282    C20 22  22  1BA 1BA

现在我想要的是POST访问表,只显示新记录,SQL用于删除PRE和POST表中重复的任何记录,并创建一个名为outstanding的新表,并将重复项粘贴到那里。

现在我正在学习SQL,但这稍微超出了我的深度。任何人都知道这是否可能?

2 个答案:

答案 0 :(得分:0)

您可以尝试进行以下操作:

SELECT DISTINCT CO, Otp, Los, His, Whs, Fac
FROM POST

在表格中,POST后每个CO值只有一条记录。

答案 1 :(得分:0)

由于您的帖子已使用Access 2007标记,我猜您需要Access SQL:

首先,创建重复的表:

INSERT INTO tblOutstanding (CO, Otp, Los, His, Whs, Fac) 
SELECT tblPRE.CO, tblPRE.Otp, tblPRE.Los, tblPRE.His, tblPRE.Whs, tblPRE.Fac
FROM tblPRE INNER JOIN tblPOST ON tblPRE.CO=tblPOST.CO

其次,删除重复项:

DELETE * FROM tblPOST
WHERE tblPOST.CO IN (
SELECT tblPRE.CO FROM tblPRE INNER JOIN tblPOST ON tblPRE.CO=tblPOST.CO
)