Вниз
Скачать: CL | DM;

Удаление повторяющихся записей   Найти похожие ветки 

← →
KDS ©   (2002-09-12 12:57) [0]

Всем привет!
Можно ли средствами только Access
удалить повторяющиеся записи или все равно придется писать программку для чистки?
Если в Access заложена эта функция, то где ее искать?


← →
LordOfSilence ©   (2002-09-12 13:08) [1]

В среде Access создайте новый запрос с помощью
мастера "повторяющиеся записи", ответив на
задаваемые вопросы. Посмотрите на результат
отработки запроса (это пока только выборка).
После этого меню "Запрос\Удаление" (до этого
переключатель стоял в режиме "выборка").
Произведите необходимые изменения в дизайнере
запроса и, наверное, все...


← →
KDS ©   (2002-09-12 13:58) [2]

>LordOfSilence Спасибо за внимание
Выборку повторяющихся я сделал вручную SQL-запросом.
Этот список есть.
Уточняю вопрос:
Необходимо, чтобы осталось по одной записи.
При Вашем предложении удалятся все повторяющиеся.
Т.е. было две одинаковые записи, а станет ноль,
а мне необх. оставить только одну, любую.


← →
LordOfSilence ©   (2002-09-12 14:06) [3]

>KDS
Эта тема довольно живо обсуждалась здесь пару дней назад,
поищите ее, если не лень.


← →
LordOfSilence ©   (2002-09-12 14:48) [4]

Дима, извините, если опять "невпопад", но может
следующие мысли Вам помогут.

1. Список повторений мы создали (Запрос1).
2. Создаем Запрос2 к Запросу 1,
в нем делаем группировку по повторяющемуся полю
( а может полям? вообще большой вопрос, что в
Вашем случае и как повторяется),
а к остальным полям применяем аггрегирующие функции
First()/Last() (есть такие в Access2000).

Таким образом, у нас есть список записей, на основе
которого мы можем создать новую таблицу, старую "грохнуть"
и т.п. - на Ваше усмотрение.

Только что смоделировал эту ситуацию, вроде работает.
Подразумевается, что повторяется поле Pole1.

SELECT [Запрос1].Pole1, Last([Запрос1].Pole2) AS [Last-Pole2], Last([Запрос1].Pole3) AS [Last-Pole3], Last([Запрос1].Pole4) AS [Last-Pole4]
FROM [Запрос1]
GROUP BY [Запрос1].Pole1;


← →
sniknik ©   (2002-09-12 15:21) [5]

да уж вопрос явно неоригинален, часто повторяется.
выполни простой запрос вроде приведенного в том же Access после переименуй табличку
SELECT * INTO ADVDISC1 FROM (SELECT DISTINCT * FROM ADVDISC)
удалятся только повторы причем только при совпадении всех полей, впрочем по одному тоже можно немного переделав запрос.


← →
KDS ©   (2002-09-12 16:38) [6]

>LordOfSilence и sniknik Спасибо, ребята!!!
Вы мне оба очень помогли, подсказав, что необх. создать новую таблицу на основе данной (с повторениями)!
>LordOfSilence узнал новое для себя
про First()/Last() (есть такие в Access2000)
>sniknik очень рационально и быстро.
Удачи Вам!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-7926
vinni2000
2002-09-23 19:13
2002.10.03
Вопрос по ShellExecute


1-8016
ctapik-net
2002-09-21 21:05
2002.10.03
Declaration of class TForm1 is missing or incorrect!!!


3-7828
Andrew_
2002-09-11 19:27
2002.10.03
Координаты ячейки в DBGrid, над которой находится мышь


4-8225
anod
2002-08-15 18:51
2002.10.03
Дочернее окно


1-7898
Fishka
2002-09-18 14:04
2002.10.03
CheckListBox - принудительный скроллинг?




   Наверх