![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Есть таблица в которой встречаются записи полностью идентичные, кроме ключевого поля. необходимо удалить дубликаты, оставив только по одной копии, чтобы не было повторений.
Таблица такая:
Сделал такую хранимку:
Она компилируется без ошибок. Но прежде, чем её запускать, хотел бы спросить у знатоков, нет ли тут каких-нибудь грубых ошибок. А-то таблица T_MG_CODE большая и если что не так, трудно будет разобраться. Напрягает ещё то, что IB Expert выделяет жирным поле COMMENT как будто это команда или служебное слово, хотя это имя поля и раньше при работе с ним никаких проблем не возникало. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Процедура оказалась неправильная. Она сравнивает все записи с одинаковым полем CODE только с тем из них, которого ID_MG_CODE минимальный, а надо по идее, чтобы каждый с каждым сравнивался
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Ура! Всё получилось! Совсем по-другому и вроде даже проще всё выглядеть стало
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Можно одним запросом, например удаляем все повторения CODE:
если полей для сравнение больше, надо их добавить в where (t2.code = t1.code) and (...) and (...) -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
По-моему этот запрос удалит все повторяющиеся записи, а не все повторения. т.е. ни одной копии не оставит. хотя я не проверял
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
А что мешает проверить?
Если знаешь как работает InterBase и клоны в таких ситуациях, не будешь так говорить. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
skeef |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.3.2010 Репутация: нет Всего: нет |
А так не проще?
и работает гораздо быстрее Это сообщение отредактировал(а) skeef - 8.5.2010, 17:54 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |