| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Корр-ка/удаление одинаковых записей |
| Автор: Natana 9.11.2005, 19:33 |
| нужно в DBF откорретировать запись. Пользуюсь SQL-запросом. Сохранить пытаюсь с помощью UpdateSQL. Беда в том, что одинаковых записей в б.д. несколько (Например пользователь неверно ввел фио и получилось 2 Ивановых) происходит следущее Оба Ивановых заменяются на Сидоровых , выдается сообщение об ошибке (...Update Files...) и все... группировать не могу. Добавлять уникальное поле для каждого ????? Может присоветуете чего-нибудь. |
| Автор: _hunter 9.11.2005, 20:13 | ||
само-собой |
| Автор: Natana 9.11.2005, 20:47 |
| Прошу прощения за дурацкий пример. Попытаюсь объяснить по другому. Есть справочник поставщиков(Id, Name). Есть б.д., например по приходу, содержащая данные о № счета-фактуры, дате, сумме, id поставщика и т.д. Одну счет-фактуру ввели ДВА РАЗА. Хочу корректировать или удалить эту запись. Можно ли это сделать без создания уникального кода в б.д.? |
| Автор: Satana 9.11.2005, 22:16 | ||
| Natana В принципе можно но уникальность будет все равно хоть и "неявная" тебе нужно будет в секции where указывать несколько полей-признаков. Будет чтото вроде
|
| Автор: Демо 10.11.2005, 14:18 | ||
1. Получить дублированные записи, используя проверку на повторность, например:
В этом запросе считается, что если 3 поля совпадают, то записи одинаковые. 2. Далее в цикле идем по курсору. Удаляем в MyTable все дублированные записи, кроме одной, используя счетчик - поле Cnt - за один проход по всей таблице MyTable. |
| Автор: nworm 10.11.2005, 18:46 |
| Можно попробывать SELECT DISTINCT... |
| Автор: Демо 11.11.2005, 18:59 | ||
Это выборка. А удалить лишние? |
| Автор: nworm 12.11.2005, 10:15 | ||
Да, видимо, ничего путного из этого не выйдет. |
| Автор: <Spawn> 13.11.2005, 08:22 | ||
Демо Имхо, правильнее написать чего нить такое:
|