powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поиск двойников в таблице
7 сообщений из 7, страница 1 из 1
поиск двойников в таблице
    #34050600
startFOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите,

каким образом можно выявить наличие дублирующих записей (то есть записей, в которых одно из полей совпадает)

На данный момент использую нечто подобное
Код: plaintext
1.
2.
3.
4.
 SELECT count(*) FROM tmpl WHERE npss=k INTO ARRAY c1
  IF c1( 1 )> 1  THEN 
     .......
  ENDIF

Есть ли альтернативы? Без использования SELECT?
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34050682
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT npss FROM tmpl INTO ARRAY c1 GROUP BY npss HAVING count(*)> 1 
Получим массив, в котором только те значения, которые имеются больше чем у одной записи.
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34050710
startFOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.

А можно ли выяснить этот вопрос без SQL-команды?

База, в которой приходится искать двойников большая, а машина слабенькая для выполнения запросов.

Суть задачи:
Для базы абонентов выяснить: есть ли конкретно у каждого абонента его "двойник" в этой же базе?
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34050742
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на чем основана уверенность в необходимости сильной машины для выполнения запросов?
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34050775
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCAL lcOldNpss
INDEX ON npss TAG npss
SET ORDER TO npss
GO TOP
DO WHILE !EOF()
    lcOldNpss=npss
SKIP 
   IF npss==m.lcOldNpss
        && здесь сообщение или добавление в массив или в другую таблицу 
        && о двойнике 
        && если надо только один раз показать можно еще одну переменную     
        && завести, которую будем анализировать и не показывать если этот 
        && двойник уже показывался
   ENDIF 
ENDDO 
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34051959
startFOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем откликнувшимся.
Не было возможности ответить сразу.

2 Jura.K
Окажусь на рабочем месте и попробую: что окажется быстрее

2 проходящий
Да, собственно ни на чем. Просто стало интересно: можно ли заставить программу работать эффективнее, в моем случае быстрее отрабатывать алгоритм. После выполнения запроса появляется окно "прогресса"...

Ещё раз спасибо.
...
Рейтинг: 0 / 0
поиск двойников в таблице
    #34052381
foxwizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
select table1
* пакуем
pack
*Удаляем все записи
delete all
* Индексируем по полю , значения в котором не должны повторяться
(можно индексировать по условию, если значение_поля1+значение_поляN должны быть уникальны в пределах таблицы)
INDEX on Поле TAG temp UNIQUE
*Восстанавливаем записи
recall all

у записей с одинаковым значением будет восстановлена только одна.

А вообще лучший способ избавиться от дубликатов - не делать их.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поиск двойников в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]