Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: osmor
3-й день кручу в голове никак не придумаю...
Попробую сформулировать вопрос, может решение придет.
есть набор значений (ну условно таблица) с полями
Val - тектовое 255
Org - Long
ID - Long
IDError - Integer (изначально равно 1 для всех записей)

Значения в поле VAL ОДНОЗНАЧНО повторяющиеся (именно по этому эти записи в набор и попали).

Задача для одинаковых VAL :
если есть запись с Org = 1 то
         если во ВСЕХ других записях с этим VAL поле ID равен текущему, то IDError для этих = 2,  а для текущей NULL
         если встречаются другие ID, то для каждого встречающегося ID, первая запись (фактически любая, но одна) IDError = 1, а все         остальные IDError = 2
если нез записи Org =1, то
         для всех одинаковых ORG
                      если во ВСЕХ других записях с этим VAL поле ID равен текущему, то IDError для этих = 2,  а для текущей NULL
                       если встречаются другие ID, то для каждого встречающегося ID, "первая" запись (фактически любая, но одна) IDError = 1, а все остальные IDError = 2

Попробую пояснить на примере
После обработки должно получиться:

VAL Org ID IDError
a    1    1    Null    (т.к. ORG = 1, а все остальные ID одинаковые
a    4    1    2
a    5    1    2
            
b    1    1    1     (т.к. ORG = 1, а ID попадаются разные, то в итоге должен проставить IDError = 1 
b    1    2    1      для одной записи в каждом ID, а в остальных IDError = 2)
b    2    1    2
b    2    1    2
b    3    5    1
            
c    2    1    NULL  (т.е. нет записей с ORG = 1, а для каждого org значение id одинаковое, то для "первого" idError = null
c    2    1    2            (для остальных idError = 2)
c    3    2    NULL
c    3    2    2
c    4    3    NULL
            
d    2    1    1    (Org <>1. для ORG есть разные ID, то  для каждого ORG и каждого ID, для "первой" записи IDError = 1, для остальных 
d    2    1    2     IDError = 2
d    2    2    1
d    2    3    1
d    2    3    2
d    3    1    NULL     (т.к. для ORG = 3 все ID одинаковые, то для "первой" записи IDError = Null для остальных IDError = 2
d    3    1    2
d    3    1    2
d    3    1    2


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.