Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.007 c
11-1186297255
MTsv DN
2007-08-05 11:00
2008.07.27
MultiSelect in TreeView


15-1212446696
alex-drob
2008-06-03 02:44
2008.07.27
Где написать код, чтобы он выполнился после загрузки программы


2-1214302930
savyhinst
2008-06-24 14:22
2008.07.27
Debuging troubles


2-1214668224
Ivan.S
2008-06-28 19:50
2008.07.27
TTreeView


1-1196157020
Pakito
2007-11-27 12:50
2008.07.27
Послать комбинацию клавиш стороннему приложению





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский