OpenEdge ABL / Progress 4GL查询

时间:2012-02-29 14:23:26

标签: progress-4gl openedge

我需要帮助编写此进度查询:     找到第一个无锁       其中a.a =变量       和a.b = variable2       和a.c = variable3       和((a.d<> variable4       和a.e<> variable5       和a.f<> variable6)     / *这个“或者”只是我希望它做的sudecode * /       或者在(第一个b无锁,其中b.a =变量       和(b.b = variable7或b.b = variable8 no-error)))       无error.`

“或者”是我遇到麻烦的事情。

3 个答案:

答案 0 :(得分:2)

鉴于您想要创建的语句,我建议采用以下两步过程:

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.

答案 1 :(得分:0)

不要过多地考虑MS SQL查询或一般脚本查询。

像  对于每个test1 no-lock,其中test1.a = var1和test1.b = var2 no-error。

与...相同 找到第一个test1 no-lock,其中test1.a = var1和(test1.b = var2或test1.c = var3)no-error。 //它一次只给你一行。

答案 2 :(得分:0)

我相信你要找的声明是'可以找到'。

... or can-find(first b where b.a = a.a ...