OpenEdge ABL / Progress 4GL Query - PullRequest
       21

OpenEdge ABL / Progress 4GL Query

1 голос
/ 29 февраля 2012

Мне нужна помощь в написании этого запроса: сначала найди без замка где a.a = переменная и a.b = переменная2 и a.c = variable3 и ((a.d <> variable4 и a.e <> variable5 и a.f <> variable6) / * это "или в" просто sudecode для того, что я хочу сделать * / или в (первый b без блокировки, где b.a = переменная и (b.b = переменная7 или b.b = переменная8 без ошибок))) нет-error.`

У меня проблемы с "или в".

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

Учитывая тип заявления, которое вы хотите создать, я предлагаю следующий двухэтапный процесс:

find first b no-lock where b.a = variable 
                           and (b.b = variable7 or b.b = variable8) no-error.

find first a no-lock where a.a = variable 
                           and a.b = variable2 
                           and a.c = variable3 
                           and ((a.d <> variable4 and a.e <> variable5 and a.f <> variable6) 
                                 or available b) 
             no-error.
0 голосов
/ 07 июня 2017

Я считаю, что заявление, которое вы ищете, «можно найти».

... or can-find(first b where b.a = a.a ...
0 голосов
/ 04 апреля 2017

Не думайте слишком много, как запрос MS SQL или общий запрос сценариев.

как для каждого без блокировки test1, где test1.a = var1 и test1.b = var2 без ошибок.

так же, как найти первый тест1 без блокировки, где test1.a = var1 и(test1.b = var2 или test1.c = var3) без ошибок.// он дает вам только одну строку за раз.

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