|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Уалить одинаковые строки
Есть 2 таблицы общая и вторая таблица взятая из общей по некоторому фильтру где записей на 1 т меньше. Таблицы состоят из 2 колонок: фамилия имя отчество, дата рождения. Таблицы в DBF перенесены из Ексель.
записей в общей таблице 13 тыс людей, а во второй 12 т. Мне нужно сравнить и вытащить из общей таблицы 1т. людей, которые не попали в отфильрованную вторую таблицу по одному фильтру. По идее у нас обе таблицы должны иметь одинаковое кол. людей, но они отличаются на 1 т. и мы не можем понять кто из общего списка не попал во второй список как составить массив удаления одинаковых записей, которые в первой и второй таблице и оставить тех кто из общей не попал во вторую таблицу? подскажите примерно я с базами не очень умею или запрос в SQL составить Последний раз редактировалось letair, 17.10.2009 в 11:24. |
#2
|
|||
|
|||
примерно алгоритм такой:
берем запись в 1 таблице(общая которая 13т.чел.) сравниваем со всеми записями во второй таблице (которые взяты из общей но с некоторым фильтром 12 т.чел.), если находится точно такая же - удалем строчку в Общей таблице, если не находится - оставляем. Таким образом каждую строку общей таблицы сверяем со второй до тех пор пока не удалим все 12 т. чел в общей таблице и не останется эта нужная нам 1 т. |
#3
|
||||
|
||||
Если сможете выполнить запрос к табле то так можно получить тех кто повторяется:
Код:
SELECT [Фамилия Имя Отчество], ДатаРожд FROM Table1 GROUP BY [Фамилия Имя Отчество], ДатаРожд HAVING Count(*)>1; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
у меня создано две таблицы отдельно Table1 (13тыс чел) и Table2 (12тыс чел), в них одинаковые поля FIO и DR
Вот как сделать запрос в SQL или в обработчике события на кнопке, чтобы вышли только те записи, которых нет в Table2 , около 1 тыс, они по идее должны быть там, но 1 тыс. куда то потерялась, вот хотим список вытащить для разбирательства, почему они там отсутствуют |
#5
|
|||
|
|||
а как в SQL Explorer результаты SQL запроса вывести в ексель? делаю там сохранить в файл, а он запрос сам сохраняет мне. В MSSQL сохраняет в файл а здесь нет, MSSQL ставить не хочется
|
#6
|
|||
|
|||
Цитата:
этот запрос натолкнул на мысль, что если я две таблицы запишу в одну, будет 25 тыс записей и выполнить запрос: Код:
SELECT Fio,GR FROM общее1 GROUP BY Fio,GR HAVING Count(*)=1; и получу список как раз тех кто встречается только 1 раз, а не 2 и более и будет примерно та самая оставшаяся 1 тыс людей, которые не попали во вторую таблицу? |
#7
|
||||
|
||||
Что-то я запутался, вам надо получить в итоге список из уникальных записей что-ли? Т.е. убрать повторы? Если так, то:
Код:
delete from Table1 where id in ( SELECT Max(id) FROM Table1 GROUP BY [Фамилия Имя Отчество], ДатаРожд HAVING Count(*)>1) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
да как бы лучше было бы сранвить две таблицы и вытащить те записи ,которых нет во второй таблице
|