Как я могу удалить записи из таблицы, которые имеют определенные критерии - PullRequest
0 голосов
/ 10 августа 2009

Вопрос новичка, которого я знаю.

У меня есть таблица с примерно 10 полями, одно из полей является полем категории. Мне нужно, чтобы это поле существовало из-за нескольких типов категорий. Однако одна категория в этом поле неверна и дублирует результаты.

Так я могу удалить все записи в таблице, которые имеют "Type320" в поле CatDescription, и как? Я хочу оставить все как есть в этой таблице; просто нужно избавиться от записей, которые имеют то что в этом одном поле

Большое спасибо!

РЕДАКТИРОВАТЬ: Спасибо за ответ, я не знал, как это сделать, так что это очень полезно

Однако это сложнее, чем я думал. Необработанные данные, которые я предоставляю, содержат эти дубликаты записей (дублируются только при определенных обстоятельствах, но их легко изолировать). Эти необработанные данные предоставляются мне ежемесячно в нескольких формах электронных таблиц.

Все это относится к этим идентификационным номерам и имеет 10 полей (столбцы xls). Как я уже говорил ранее, одним из них является поле «Описание категории» (извините, это не поиск). В некоторых местах эта запись автоматически дублирует себя на выходе, потому что в базе данных, из которой она получена, она должна иметь эту подкатегорию для одного конкретного ». типа "

Итак ... каждый раз, когда происходит дублирование, каждый бит информации во всех полях одинаков, за исключением этого описания CatDescription (одно из них - Type320, а тип дублированной записи - "Type321"). Тем не менее, есть некоторые случаи, когда Type321 действителен сам по себе (в этом случае нет соответствующей строки данных с Catdescription Type320). Под соответствием я подразумеваю все данные во всех полях определенной записи.

Совершенно ясно, что если все поля (данные внутри) записи с CatDescription Type320 сопоставляют все поля (данные внутри) записи с CatDescription Type321, то я могу удалить эту запись, содержащую CatDescription Type321. Это верно, потому что это единственная ситуация, когда происходит такое дублирование, обычно не все это должно совпадать.

Это позволяет сохранять все уникальные записи с данными Type320 и Type321 (которые не совпадают точно); просто так и должно быть. Это имеет смысл для меня (и, надеюсь, вы тоже: /), но можно ли это сделать и как?

спасибо, потому что это над моей головой. Я предпочел бы знать, как сделать это в доступе, но решение xls одинаково ценно. черт возьми, я бы сделал это в ppt, если бы это было сделано! :)

Ответы [ 2 ]

5 голосов
/ 10 августа 2009

Я бы попробовал с одним из этих двух запросов:

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

Это потому, что ядро ​​базы данных Access может использовать * (режим запроса ANSI-89, например, DAO) вместо% ( режим запроса ANSI-92 например, OLE DB / ADO) для подстановочных знаков.

В качестве альтернативы, это независимо от режима запросов ANSI:

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

Обратите внимание, что ключевое слово ALIKE ядра базы данных Access официально не поддерживается.

1 голос
/ 10 августа 2009

Поле CatDescription смотрит на другую таблицу? Это запрос тех таблиц, который создает то, что вы называете дублирующими результатами?

Если это так, будьте осторожны, обвиняя таблицу с CatDescription. Проверьте таблицу соответствия, чтобы увидеть, найден ли Type320 там в двух экземплярах.

Если проблема не изолирована правильно, вы, вероятно, удалите хорошие записи, не решая проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...