Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.03;
Скачать: 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 вся ветка

Текущий архив: 2002.10.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-7859
pwlusa
2002-09-02 09:40
2002.10.03
Поговорим о запросах


1-7985
s.ts
2002-09-20 21:21
2002.10.03
Узнать запущена ли IDE


3-7877
propeller
2002-09-13 00:08
2002.10.03
????Как хранить старые даты (1500-1600 года)????


6-8087
skeeper
2002-08-02 13:48
2002.10.03
Заполнение формы


1-7896
andrey_pst
2002-09-23 13:16
2002.10.03
Пункты в системном меню.