Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: А2007 Частичная выборка дубликатов
 
 автор: Cerber   (14.01.2014 в 19:31)   личное сообщение
 
 

Помогите

в таблице

ID str_1 str_2 str_3 New_Rec Double_Rec
1 AB 01 B1 false false
2 AB 02 B1 false false
3 GC 03 C1 false false
4 GC 04 C1 false true
8 GC 04 C1 true true
5 JK 05 D1 false true
6 JK 05 E1 false true
9 JK 05 D1 true true
10 JK 05 E1 true true
7 MP 06 F2 false false
11 WF 07 G3 true false

необходимо выбрать записи, а именно

1 AB 01 B1 false false
2 AB 02 B1 false false
7 MP 06 F2 false false

запись

3 GC 03 C1 false false

не входит в отчет (строка 8), так как главная запись "GС" не удаляется

В таблице данные могут изменяться в любом или нескольких столбцах
(str_2,str_3 (в оригинале 7 столбцев)), а могут остаться прежними
Благодарю всех

  Ответить  
 
 автор: Explorer   (15.01.2014 в 00:04)   личное сообщение
 
 


необходимо выбрать записи, а именно



сформулируйте условие точнее (например чему могут быть равны str_1, str_2 и т.п. нужные критерии)

поскольку пока (в приведенном вами случае) я вижу только решительное WHERE ID IN ([CRITERIA])
но мне кажется вас это вряд ли устроит

  Ответить  
 
 автор: Cerber   (15.01.2014 в 12:20)   личное сообщение
17 Кб.
 
 

в файле: необходимо выбрать записи строк 1,2,11 (Id_Main)
строка 3 (Id_Main) не входит в отчет
столбцы с возможными изменениями
SP, NP, STATUS, ADRES, NAMEPR, SNILS
Id_Svaz (F, I, O, DAY, Month, GR) не меняется (шанс изменения мизерный)
значения "0" и "-" отсутсвующие записи

принцип работы обновляется база данных, новые записи могут быть действительно новыми, могут дублировать существующие, а могут не содержать существующих
процесс отслеживания отработан (true/false и удаление записей по дубликатам и удаленным записям) необходимо перед удалением старых записей сделать выборку какие записи будут действительно удалены, а не обновлены (изменился SP или NP, или STATUS, или ADRES, или NAMEPR, или SNILS или их комбинация)

Спасибо

  Ответить  
 
 автор: Explorer   (15.01.2014 в 21:56)   личное сообщение
 
 


новые записи могут быть действительно новыми,
могут дублировать существующие,
а могут не содержать существующих
<...>



извините я не понял...
но это ничего...

может кто нибудь еще попытается

  Ответить  
 
 автор: Йожык   (16.01.2014 в 09:32)   личное сообщение
 
 

Ок. Попробую. (принимает эстафету.)

Насколько я понимаю, New_Rec Double_Rec у вас уже проставлены
Давайте проверим, правильно ли я вас понял.

Выборка к добавлению: INSERT INTO
New_Rec=True AND Double_Rec=False 'Запись новая, дублей нет

Выборка к обновлению: UPDATE
New_Rec=True AND Double_Rec=True означает, что запись существует в базе, но содержит измененные данные

Выборка к удалению DELETE
New_Rec=False AND Double_Rec=True - Такая запись есть, изменений нет, ее надо удалить.
вот ее и надо просматривать.

- - -
New_Rec = True в описанной логике означает, что запись либо новая, либо ее надо обновить (содержит измененные данные)

  Ответить  
 
 автор: Cerber   (20.01.2014 в 21:43)   личное сообщение
20 Кб.
 
 

Спасибо всем вопрос решен логика

создаем столбец Rec_D_Rep
запрос поиск дубликатов по SP, NP, STATUS, ADRES, NAMEPR, SNILS, Id_Svaz с обновлением столбца Rec_D_Rep = True
запрос поиск дубликатов по Id_Svaz по условию >2 с созданием временной таблицы tbl_Tmp
запрос на обновление Rec_D_Rep = True (tbl_Work_Exp_01) по условию Rec_D_Rep = False и совпадении Id_Svaz в таблицах
выборка удаляемых записей по условию Rec_New = False и Rec_D_Rep = False

Народ, может быть у кого-нибудь есть мысли по поводу более изящного решения

Всем спасибо

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList