![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выявление дублированных записей [D5, dBase, FoxPro]
Alexey V. © (2006-04-21 09:27:00)Имеется таблица (пл. поручения). Необходимо найти одинаковые записи, если они есть. Сравнение по одному полю (№ п/п, сумма и т.д.) ничего не даст. Надо находить совпадение сразу по нескольким полям. Как это сделать?
Alexey V. (2006-04-24 17:45:00) [1]Я в банке работаю и уже использую совет [5]
evvcom (2006-04-24 16:52:00) [2]Ну так п/п формируются в твоей программе? И в dbf ты их экспортируешь? Я понимаю, банковскую выписку анализировать. Или ты в банке работаешь? И как раз получаешь эти п/п от клиентов? Так или иначе, правильный ответ тебе уже дан. Дерзай.
Alexey V. (2006-04-24 16:28:00) [3]2 [9] evvcom
Да, это хорошо бы, но Центральный банк пока принимает п/п только в виде dbf файлов, а контроль желательно проводить в выходном файле. Банковский опердень, естественно, не на dbf.
Sergey13 (2006-04-24 16:06:00) [4]2[9] evvcom © (24.04.06 16:02)
Это способ не допустить дубликатов, а тут надо показать имеющиеся. 8-)
evvcom (2006-04-24 16:02:00) [5]
> Вот еще один нестандартный способ:
А вот еще один стандартныйспособ:
Перейти на "нормальную" СУБД и наложить UNIQUE CONSTRAINT.
Anatoly Podgoretsky (2006-04-24 14:45:00) [6]И предлагаешь после этого ее от туда удалять :-)
Dummes (2006-04-24 14:28:00) [7]Вот еще один нестандартный способ:
Создаем таблицу (нпр. в Парадокс)
Индексируем (PK) те поля, которые не должны повторяться
Вставляем Isnert в блок try except
Если возникает исключение, то запись повторяющаяся,
если нет, то уникальная!
Alexey V. (2006-04-21 09:55:00) [8]to [5] Sergey13
Классно. Никогда бы не додумался, что можно писать count(*)
Спасибо.
Sergey13 (2006-04-21 09:45:00) [9]2 [4] Alexey V. (21.04.06 09:43)
Select f1,f2...fN, count(*)
from tablename
group by f1,f2...fN
having count(*) > 1
Alexey V. (2006-04-21 09:43:00) [10]to Sergey13
Спасибо, работает. Остается только из полученной выборки найти записи, где count(*) > 1
vovnuke (2006-04-21 09:37:00) [11]в [1]указано просто как получить все записи удовлетворяющие определенным условиям.
vovnuke (2006-04-21 09:33:00) [12]select *
from tabl
where f1 = :p1 and f2 = :p2 and ...
Sergey13 (2006-04-21 09:33:00) [13]Select f1,f2...fN, count(*)
from tablename
group by f1,f2...fN