2009-08-10 92 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是否在這裏找到一式兩份。

如果您沒有正確隔離的問題,那麼您可能會在不修復問題的同時刪除良好的記錄。

相關問題