Як видалити дублікати записів у

В базі близько 80 полів та 80 000 записів.

найпростіший спосіб SELECT * INTO [dBase IV; DATABASE = D: \]. [TEST1 # DBF] FROM (SELECT DISTINCT * FROM [dBase IV;>перевірено працює. дзвінок здійснюється з підключення через JET до бази Access. Дублікатом (тут) вважається збіг по всіх полях. Таблиці не індексовані. (Додавання індексу можливо спотворить результат)

До речі і так працює якщо тип бази в підключенні вказати SELECT * INTO TEST1 FROM (SELECT DISTINCT * FROM TEST) підключення Prov > -Тому видаляти, а з Jet-ом все як просто виявилося, тільки перейменувати табличку залишається.

Можна й так: delete from table1 t1 where 1

Віталій Панасенко-> цей запит видалитьВСЕзаписи, що повторюються, адже одну з них треба залишити, Andrei_-> ні?

За допомогою SQL цікаво, але є лише Clipper та файл .dbf, у якому деякі записи повторюються по 5 разів, а треба залишити лише одну. Дублем вважаються записи, у яких усі значення полів однакові. Первинного ключа немає. Є пусті значення.

sniknik-> Цей запит видалити ВСІ записи, крім ОДНОГО - перевірено

:-))) Не так висловився: видалитьЗАЛИШНІдублікати і залишитьОДИНваріант запису - перевірено

Робота явно разова, я б надійшов в даному випадку інакше і без SQL додав би ще одне поле, по ньому індекс, в це поле за допомогою якої або хеш функції помістив би значення. Далі за активного індексу за допомогою TTable пройшовся б послідовно по всіх записах і видалив зайві, потім упаковка таблиці. Залежно від подальшого або залишив це поле як унікальний індекс або видаливб, але в будь-якому випадку варто подумати про первинний ключ або його аналог, на майбутнє, щоб подібне більше не повторювалося

У тому й річ, Анатолію, що робота не разова - доводиться виправляти чужі помилки: база щодня поповнюється пакетами, в яких купа повторів. Втрутитися у процес поповнення ми не можемо – тільки після нього можна робити з базою все, що завгодно. Вручну цю роботу виконувати неможливо. Та ще ОС - DOS 6.22

Тоді теж саме, тільки на постійній основі, або в будувати в свою програму або окремою утилітою, головне в цій справі не використовувати SQL просто простіше іншими засобами, під які заточений Парадоксівський формат - BDE і TTable, чисто навігаційні методи, якщо підеш на додаткове поле , то достатньо робити коригування для тих записів, де воно порожнє, але в будь-якому випадку це теж разова робота, зробив один раз на початку сеансу, далі не потрібно

Погоджується з Подгорецким.

У тому ж Fox можна написати:

select dist * from TABLE into table NEWTABLE а потім просто перейменувати NEWTABLE->TABLE