我有两个表,tbl_NTE和tbl_PAH。 tbl_PAH中的记录已经在tbl_NTE中可用,这就是为什么我创建了一个追加查询来自动传输和更新某些记录,因此每次单击保存按钮都会导致重复,因为保存按钮会触发追加查询查询。 / p>
我想运行一个查询,其中删除了所有带有重复项的数据,并保留原始数据。
我创建了一个删除查询并输入了条件: -
In (SELECT [CaseIDNo]
FROM [tbl_PAH] As Tmp GROUP BY [CaseIDNo]
HAVING Count(*)>1 )
我还尝试过Last,First,Max和Group By作为标准,但它所做的一切都删除了所有记录。
In (SELECT DISTINCTROW tbl_PAH.CaseIDNo
FROM tbl_PAH
GROUP BY tbl_PAH.CaseIDNo
HAVING (((tbl_PAH.CaseIDNo) In (SELECT Last(tbl_PAH.CaseIDNo) AS
LastOfCaseIDNo FROM tbl_PAH Group By tbl_PAH.CaseIDNo HAVING
(((Count(tbl_PAH.CaseIDNo))>1));)));)
这是我尝试的另一个,但也删除了重复的全部记录,而没有留下原始记录。
DELETE tbl_PAH.CaseIDNo
FROM tbl_PAH
WHERE (((tbl_PAH.CaseIDNo) In (SELECT DISTINCTROW tbl_PAH.CaseIDNo
FROM tbl_PAH
GROUP BY tbl_PAH.CaseIDNo;)));
当我运行它时,删除所有重复项而不离开原始副本。关于如何解决这个问题的任何想法?
我已将“唯一记录”设置为“是”。我将索引设置为Yes(Duplicates Ok),以便在将记录自动附加到其他表时没有错误,但结果会创建重复项。有关使用条件删除重复项的任何帮助"当记录在CaseIDNo方面有重复时,将删除重复项,只留下原始记录。"我是MS Access 2010的新手,这就是我还在学习的原因。我正在使用Microsoft Access 2010.提前感谢那些愿意回答的人。
答案 0 :(得分:0)
您可以使用以下查询删除ID不是ID最小值的所有重复记录。由于ID是一个唯一的列,因此应该保留原件。
请注意,我已将您的第一个条件从if($var1 != '' && $var2 != '' && $var3 != '' ){
//first condtion
if($var1 == 'clear'){
echo 'clear';
}
//2nd condtion
if($var2 == 'run'){
echo 'run';
}
//3rd condtion
if($var3 == 'go'){
echo 'go';
}
}
重构为IN
,因为这些条件通常更快,更可靠。
EXISTS