如何在MS ACCESS中删除两个重复项

时间:2013-10-21 05:09:57

标签: sql ms-access duplicates

哦,是的,MS Access ...

我有一个包含重复项的表,基本上如果有重复项,我需要删除BOTH记录。这可能吗?

为了使事情变得复杂,我称之为“重复”的内容在所有字段中都不是真正的重复,但它们是跨关键字段的。

这是表格(格式不是非常漂亮):

ID  documentDate    accountNetAmount    reference   accountTaxAmount    getBankAccount  getCompany  isReconciled    oid
11  6/30/2013   20687.7 REFTe   0   02537.0000000014    02544.0000000023    1   02364.0000000078
12  6/30/2013   -20687.7    EFTe    0   02537.0000000014    02544.0000000023    0   02364.0000000079
13  6/30/2013   14935.41    REFTf   0   02537.0000000014    02544.0000000023    1   02364.0000000080
14  6/30/2013   -14935.41   EFTf    0   02537.0000000014    02544.0000000023    0   02364.0000000081
15  7/4/2013    -294.55 MIMOSA  -29.45  02537.0000000014    02544.0000000023    0   02364.0000000177
16  7/8/2013    -1185.81    BPAY080713  -118.58 02537.0000000014    02544.0000000023    0   02364.0000000499
17  7/9/2013    -462.05 PERFUME -46.2   02537.0000000014    02544.0000000023    0   02364.0000000179
18  7/9/2013    -1264.09    PERFUMERY   -126.41 02537.0000000014    02544.0000000023    0   02364.0000000181

我需要删除documentDate和abs(accountNetAmount)相同的记录。所以我的结果集应如下所示:

ID  documentDate    accountNetAmount    reference   accountTaxAmount    getBankAccount  getCompany  isReconciled    oid
15  7/4/2013    -294.55 MIMOSA  -29.45  02537.0000000014    02544.0000000023    0   02364.0000000177
16  7/8/2013    -1185.81    BPAY080713  -118.58 02537.0000000014    02544.0000000023    0   02364.0000000499
17  7/9/2013    -462.05 PERFUME -46.2   02537.0000000014    02544.0000000023    0   02364.0000000179
18  7/9/2013    -1264.09    PERFUMERY   -126.41 02537.0000000014    02544.0000000023    0   02364.0000000181

有什么建议吗?别忘了,MS Access ......呃。

谢谢!

1 个答案:

答案 0 :(得分:1)

在我的脑海中,我会尝试根据您认为重要的字段进行分组。

之类的东西
SELECT documentDate, abs(accountNetAmount) , count(*)
FROM yourtable
GROUP BY DocumentDate, abs(accountNetAmount)
HAVING count(*) = 1

上面的查询可能会变成一个视图,然后您可以与您的表连接以获取删除了重复项的列表。