我只能在Where(
之后写入4gl查询。是否可以编写嵌套查询以在完全不同的表中进行搜索?
例如
**FOR EACH WORK_ORDER WHERE(**
//my query starts on this line
1=1 and
( for each purchase_order where key <> '123' end)
这显然不起作用,但有可能使其有效吗?
此查询将为我提供错误:PREPARE syntax is {FOR|PRESELECT} EACH OF..WHERE" (7324)
答案 0 :(得分:2)
不,这是不可能的。查询需要知道它的所有缓冲区。如果您唯一可以操作的是实际的WHERE子句,它就不够了。
这是如何做到的,但你需要操纵的不仅仅是:
DEFINE QUERY q1 FOR WORK_ORDER, PURCHASE_ORDER.
QUERY q1:QUERY-PREPARE("FOR EACH WORK_ORDER, EACH PURCHASE_ORDER WHERE PURCHASE_ORDER.id = WORK_ORDER.id" ).
QUERY q1:QUERY-OPEN().
QUERY q1:GET-FIRST.
IF AVAILABLE work_order THEN DO:
DISP work_order.
END.
ELSE DO:
DISP "no work_order".
END.
IF AVAILABLE purchase_order THEN DO:
DISP purchase_order.
END.
ELSE DO:
DISP "no purchase_order".
END.
QUERY q1:QUERY-CLOSE.
答案 1 :(得分:0)
您可以尝试使用加入。
FOR EACH WORK_ORDER NO-LOCK WHERE... , EACH PURCHASE_ORDER WHERE PURCHASE_ORDER.key <> '123'