Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
3-7872
RDA
2002-09-13 15:20
2002.10.03
мастер - деталь


1-8003
CrazyAngel
2002-09-21 15:52
2002.10.03
Как из dll вызвать функцию моей программы ?


1-8065
Metotrone
2002-09-22 18:48
2002.10.03
Дескриптор


1-7929
tytus
2002-09-23 20:11
2002.10.03
вторая форма - в том-то и дело что ошибку не показывает!!!!!!


7-8183
Shil
2002-07-24 16:42
2002.10.03
Вопрос пр TFileStream





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский