powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск и удаление дублирующихся записей
15 сообщений из 15, страница 1 из 1
Поиск и удаление дублирующихся записей
    #34891579
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Люди добрые помоги, плиз. Есть таблица необходимо совершить поиск, а потом удаление дублирующихся записей. Т.е. если одно поле в таблице будет совпадать со следующими полями...
И как более грамотно это организовать?
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34891614
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34891659
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное СПАСИБ.
Надеюсь это решит мою махонькую проблему.
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34891748
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз спасибо, но вот ребус опять возник (не сидел за фоксом лет 8). А удалить то как?
Заранее спасибо
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34891872
pitermax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть команда delete и pack, если я правильно вопрос понял
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34891925
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE CURSOR tabMain (tabMainID I, NickName C( 50 ), curDate D, Chet L)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 1 , "Первая", Date( 2005 , 6 , 1 ), .F.)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 2 , "Вторая", Date( 2005 , 6 , 2 ), .T.)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 3 , "Третья", Date( 2005 , 6 , 3 ), .F.)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 4 , "Четвертая", Date( 2005 , 6 , 1 ), .T.)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 5 , "Пятая", Date( 2005 , 6 , 2 ), .F.)
INSERT INTO tabMain (tabMainID, NickName, curDate, Chet) VALUES ( 6 , "Шестая", Date( 2005 , 6 , 1 ), .T.)
SELECT DISTINCT tabMain.* ;  
FROM tabMain ;  
INNER JOIN tabMain tabDouble ON tabMain.curDate = tabDouble.curDate  ;  
  			AND tabMain.Chet = tabDouble.Chet ;
  			AND tabMain.tabMainID <> tabDouble.tabMainID ;
ORDER BY tabMain.curDate, tabMain.Chet

DELETE FROM tabMain WHERE tabMain.tabMainID = Query.tabMainID
Не вопрос удаляет, точнее маркирует для удаления. А вот и ребус! PACK c курсором работать не хочет(
Требуется удалить из курсора а потом скопировать в нормальный вид (DBF). Вот такая вот загогулина -(
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892099
Поставьте set delete on и забудьте про Pack.
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892183
+++++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+ индекс по нот делетед Вам поможет
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892196
++++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
select * ;
	from tabMain ;
	where !deleted() ;
	into dbf c:\ 1 
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892220
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, не совсем понял
++++++ индекс по нот делетед Вам поможет
Я использовал
Код: plaintext
SELECT * FROM tabMain WHERE !DELETED() INTO CURSOR tabMain READWRITE
Если записей в таблице штук этак 500к, думать то долго не будет? В принципе вообще реально записи в курсоре убить (PACK for CURSOR -8 )?
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892304
авторВ принципе вообще реально записи в курсоре убить (PACK for CURSOR -8 )?
Ну ведь уже напИсано: поставьте set delete on. Трудно добавить одну строчку в программу?
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892411
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Ну ведь уже напИсано: поставьте set delete on. Трудно добавить одну строчку в программу?
Не хотца глобалить ) Вариант с !DELETED в принципе подходит. Вот терь думаю как все это в ОДИН SELECT засунуть..... Это реально?
Вот это работает, но криво. Сует не то что хочу. Хочу штоб КРОМЕ этой записи, а наоборот (((
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT DISTINCT ;
  tabMain.* ;
  FROM tabMain ;
  LEFT OUTER JOIN tabMain tabDouble ON tabMain.curDate = tabDouble.curDate ;
  AND tabMain.tabMainID <> tabDouble.tabMainID ;
  WHERE ISNULL(tabDouble.tabMainID) 
Мозг уже сплавился
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892614
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПАРДОН! Я не совсем правильно задал вопрос.
Необходимо чтобы все ПОСЛЕДУЮЩИЕ дублирующиеся записи удалялись, а первая оставалась. Сейчас удаляются но ВСЕ записи которые дублируются.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE CURSOR tabMain (tabMainID I, NickName C( 50 ), tCode C ( 6 ), Chet L)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 1 , "Один", "1111", .F.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 2 , "Два", "1112", .T.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 3 , "Три", "1111", .F.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 4 , "Четыре", "1311", .T.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 5 , "Пять", "11342", .F.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 6 , "Шесть", "11345", .T.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 7 , "Семь", "181231", .T.)
INSERT INTO tabMain (tabMainID, NickName, tCode, Chet) VALUES ( 8 , "Восемь", "115671", .T.)

SELECT DISTINCT tabMain.* ;  
	FROM tabMain ;  
	INNER JOIN tabMain tabDouble ON tabMain.tCode = tabDouble.tCode;  
	AND tabMain.tabMainID <> tabDouble.tabMainID ;
	ORDER BY tabMain.tCode, tabMain.Chet ;
	INTO CURSOR Out1 NOFILTER READWRITE

DELETE FROM tabMain WHERE tabMain.tCode = Out1.tCode

select * ;
	from tabMain ;
	where !deleted() ;
	ORDER BY tabMain.tCode ;
	into CURSOR Out2 NOFILTER READWRITE

Как быть? Помогите плиз
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34892863
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как удалить с таблицы повторяющееся записи??
...
Рейтинг: 0 / 0
Поиск и удаление дублирующихся записей
    #34893375
GanjaPAk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо ВладимирМ!
И ВСЕМ конечно тоже спасибо!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск и удаление дублирующихся записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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