2009-08-10 100 views
0

我知道的新手问题。如何从具有特定条件的表中删除记录

我有一个约10个字段的表,其中一个字段是类别字段。由于存在多种类别,我需要这个字段才能存在。但是,该领域的一个类别是错误的,并且是重复的结果。

因此,我可以删除CatDescription字段中具有“Type320”的表中的所有记录,以及如何操作?我想保持其他东西,就像它在这张桌子上一样。只需要摆脱在那个领域有这样的记录

非常感谢!

编辑:感谢您的回答,我不知道如何做到这一点,所以这是非常有帮助的

然而,这比我想象的更复杂。我提供的原始数据携带这些重复记录(只在某些情况下重复,但它们很容易被隔离)。这些原始数据以几个电子表格的形式每月发给我。

这一切都与这些身份证号码有关,并且有10个字段(xls列)。正如我之前所说的其中之一是类别描述字段(对不起,这不是查找)在某些地方,这些记录自动复制自己的输出,因为在数据库中它来自它,它必须有一个特定的“键入“

因此......每当有重复时,所有字段中的每一位信息都完全相同,除了CatDescription(一个是Type320,重复的记录类型是”Type321 “)。但是,有些情况下Type321自身是有效的(在这种情况下,没有与Type320 catdescription相匹配的数据行)。通过匹配我是指特定记录的所有字段中的所有数据。

这个非常明显的绝对是,如果Type320 CatDescription的记录中的所有字段(数据在内)都与Type321 CatDescription的记录中的所有字段(数据)匹配,那么我可以删除包含Type321 CatDescription的记录。这是事实,因为这是发生这种重复的唯一情况,通常不是所有情况都应该匹配。

这允许Type320和Type321数据(不完全匹配)的所有唯一记录保留;只是它应该。这对我来说是有意义的(并且希望你也是:/)但是可以这样做,以及如何做?

感谢,因为这是我的头。我宁愿知道如何在访问中这样做,但是xls解决方案同样值得赞赏。如果它能完成工作,我会在ppt中完成! :)

回答

5

我会尝试与这两个querys之一:

DELETE FROM table WHERE CatDescription LIKE '%Type320%'; 
DELETE FROM table WHERE CatDescription LIKE '*Type320*'; 

,由于Access数据库引擎可以使用*(ANSI-89查询模式如DAO)代替%(ANSI-92 Query Mode如OLE DB/ADO)为通配符。

另外,无论ANSI查询模式的这样:

DELETE FROM table WHERE CatDescription ALIKE '%Type320%'; 

注意Jet数据库引擎的关键字ALIKE不正式支持。

+0

Jhonny是对的。请记住,虽然这样的价格相当昂贵,但如果你的桌子很小,这并不重要。如果该字段中只有Type320,请使用“WHERE CatDescription ='Type320'” – Praesagus 2009-08-10 16:07:17

+0

我不明白答案为什么使用LIKE。在问题中没有迹象表明需要部分匹配。 – 2009-08-10 16:36:21

1

CatDescription字段是否会查看其他表?这是对这些表格的查询,是否会创建您称为重复结果的内容?

如果是这样,请小心指责具有CatDescription的表格。检查查找表,看看Type320是否在这里找到一式两份。

如果您没有正确隔离的问题,那么您可能会在不修复问题的同时删除良好的记录。

相关问题