|
|
|
| Помогите
в таблице
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 столбцев)), а могут остаться прежними
Благодарю всех | |
|
| |
|
|
|
|
необходимо выбрать записи, а именно
|
сформулируйте условие точнее (например чему могут быть равны str_1, str_2 и т.п. нужные критерии)
поскольку пока (в приведенном вами случае) я вижу только решительное WHERE ID IN ([CRITERIA])
но мне кажется вас это вряд ли устроит | |
|
| |
|
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 или их комбинация)
Спасибо | |
|
| |
|
|
|
|
новые записи могут быть действительно новыми,
могут дублировать существующие,
а могут не содержать существующих
<...>
|
извините я не понял...
но это ничего...
может кто нибудь еще попытается | |
|
| |
|
|
|
| Ок. Попробую. (принимает эстафету.)
Насколько я понимаю, 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 в описанной логике означает, что запись либо новая, либо ее надо обновить (содержит измененные данные) | |
|
| |
|
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
Народ, может быть у кого-нибудь есть мысли по поводу более изящного решения
Всем спасибо | |
|
| |