Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
ВнизУдаление дубликатов в DBF Найти похожие ветки
← →
Олег (2008-06-26 07:25) [0]Мастера, подскажите почему не работает этот запрос?
DELETE t1 FROM tab t1 , tab t2 WHERE t1.ID = t2.ID
Запрос выполняю при помощи TQuery.
Ошибка:
Invalid use of keyword.
Token: t1
← →
Loginov Dmitry © (2008-06-26 07:41) [1]> Invalid use of keyword.
> Token: t1
> DELETE t1 FROM
Ругается на t1. Оно здесь лишнее.
← →
Олег (2008-06-26 07:48) [2]Этот пример я нашел где-то на просторах интернета... если убрать эту t1 то ругается на запятую.
Может есть какой другой способ удалить из DBF файла дублирующиеся по одному полю записи?
← →
Sergey13 © (2008-06-26 08:42) [3]> [2] Олег (26.06.08 07:48)
> Может есть какой другой способ удалить из DBF файла дублирующиеся по одному полю записи?
Удалять надо все дублирующиеся записи или одну какую-то оставлять?
← →
Anatoly Podgoretsky © (2008-06-26 08:42) [4]А что ты используешь для удаления?
Дельфи же не понимает таких слов DELETE t1 FROM tab t1 , tab t2 WHERE t1.ID = t2.ID
И что об этом говорит твоя справка?
← →
Олег (2008-06-26 08:47) [5]
> Удалять надо все дублирующиеся записи или одну какую-то
> оставлять?
одну надо оставить
> А что ты используешь для удаления?
TQuery
← →
Palladin © (2008-06-26 08:55) [6]расслабся, без существования уникального ключа одним запросом ты этого не сделаешь
← →
Sergey13 © (2008-06-26 08:55) [7]> [5] Олег (26.06.08 08:47)
> одну надо оставить
Какую конкретно?
← →
Олег (2008-06-26 08:58) [8]любую)
← →
Виталий Панасенко(дом) (2008-06-26 09:23) [9]delete from tablename t1 where t1.key = (select t2.key from tablename t2 where t2.key=t1.key group by t2.key having count(*)>1)
t2 и t1 - одна и та же таблица
← →
Виталий Панасенко(дом) (2008-06-26 09:27) [10]только быстрее это дело сделать при помощи небольшой программки из двух компонентов - кверика и тейбла.. построить индекс по ключу, сделать его активным для тейбла, а в кверик выбрать ключ и количество повторений. далее тейблом ищем первую запись по ключу, и в цикле удаляем N-1 раз.. где N - количество повторений для данного значения ключа.. вчера такое нужно было то же сделать.. на 50000 записях запросом можно было выспаться.. а программка слепленная за 5 минут отработала считанные секунды
← →
Palladin © (2008-06-26 09:32) [11]и что? в FoxPro прямо так можно?
t1.key = (select t2.key from tablename t2 where t2.key=t1.key group by t2.key having count(*)>1)
← →
Виталий Панасенко © (2008-06-26 10:01) [12]
> Palladin © (26.06.08 09:32) [11]
главное, работает.. а можно или нет... это другой вопрос..:-)
← →
Palladin © (2008-06-26 10:08) [13]
> Виталий Панасенко © (26.06.08 10:01) [12]
а пробовал с двумя дублями?
а правда одну запись оставляет?
← →
Виталий Панасенко(дом) (2008-06-26 10:18) [14]
> Palladin © (26.06.08 10:08) [13]
>
>
> > Виталий Панасенко © (26.06.08 10:01) [12]
>
> а пробовал с двумя дублями?
> а правда одну запись оставляет?
а сам не пробовал?
← →
Виталий Панасенко(дом) (2008-06-26 10:22) [15]запрос такого вида - работает, т.е. ключ - одно поле
← →
Palladin © (2008-06-26 10:23) [16]а мне"то что пробовать, я и так вижу, что удалятся обе записи
← →
Олег (2008-06-26 11:12) [17]
> Виталий Панасенко(дом) (26.06.08 09:23) [9]
> delete from tablename t1 where t1.key = (select t2.key from
> tablename t2 where t2.key=t1.key group by t2.key having
> count(*)>1)t2 и t1 - одна и та же таблица
Спасибо! Но действительно слишком долго...
поэтому за это
> Виталий Панасенко(дом) (26.06.08 09:27) [10]
Огромное спасибо! :)
← →
Виталий Панасенко(дом) (2008-06-26 12:16) [18]
> Palladin © (26.06.08 10:23) [16]
>
> а мне"то что пробовать, я и так вижу, что удалятся обе записи
ну, я как истинный хохол - не повирю, докы не перевирю:-)... работает
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c