if else 语句用于从两个不同的 table 中查找值
if else statements for finding values from two different table
我想匹配来自两个不同 table 的数字,如果在任何 table 中找到它,它将显示..
INPUT FROM VALUE("/mydirectory/test.csv").
REPEAT:
IMPORT c.
FOR EACH table1 NO-LOCK WHERE table1.ordernumber=c.
IF AVAILABLE table1 THEN
DISPLAY table1.ordernumber table1.orderdate.
ELSE IF NOT AVAILABLE table1 THEN
FIND FIRST table2 NO-LOCK WHERE table2.ordernumber=c.
IF AVAILABLE table2 THEN
DISPLAY table2.ordernumber table2.orderdate.
END.
END.
到目前为止我已经写了这么多但是没有给出正确的结果。感谢您在这方面的帮助。谢谢
在 FOR EACH 中使用 IF AVAILABLE table1 没有任何意义,因为 FOR EACH 仅迭代 table1 中的匹配记录。
试试这个:
INPUT FROM VALUE("/mydirectory/test.csv").
REPEAT:
IMPORT c.
FIND table1 WHERE table1.ordernumber=c NO-LOCK NO-ERROR.
IF AVAILABLE table1 THEN
DISPLAY table1.ordernumber table1.orderdate.
ELSE DO:
/*IF NOT AVAILABLE table1 THEN*/
FIND FIRST table2 WHERE table2.ordernumber=c NO-LOCK NO-ERROR.
IF AVAILABLE table2 THEN
DISPLAY table2.ordernumber table2.orderdate.
END.
END.
在不知道您的 tables/indexes 的情况下,我只能猜测您是否需要进行唯一查找(当前代码)或将 FIRST 选项添加到您的 FIND 语句中。
如果您想要显示 table2.ordernumber 和 table2.orderdate 来代替 table1 中的字段,您可以像这样更改第二个 DISPLAY 语句 - 使用占位符语法:
DISPLAY table2.ordernumber @ table1.ordernumber
table2.orderdate @ table2.orderdate.
我想匹配来自两个不同 table 的数字,如果在任何 table 中找到它,它将显示..
INPUT FROM VALUE("/mydirectory/test.csv").
REPEAT:
IMPORT c.
FOR EACH table1 NO-LOCK WHERE table1.ordernumber=c.
IF AVAILABLE table1 THEN
DISPLAY table1.ordernumber table1.orderdate.
ELSE IF NOT AVAILABLE table1 THEN
FIND FIRST table2 NO-LOCK WHERE table2.ordernumber=c.
IF AVAILABLE table2 THEN
DISPLAY table2.ordernumber table2.orderdate.
END.
END.
到目前为止我已经写了这么多但是没有给出正确的结果。感谢您在这方面的帮助。谢谢
在 FOR EACH 中使用 IF AVAILABLE table1 没有任何意义,因为 FOR EACH 仅迭代 table1 中的匹配记录。
试试这个:
INPUT FROM VALUE("/mydirectory/test.csv").
REPEAT:
IMPORT c.
FIND table1 WHERE table1.ordernumber=c NO-LOCK NO-ERROR.
IF AVAILABLE table1 THEN
DISPLAY table1.ordernumber table1.orderdate.
ELSE DO:
/*IF NOT AVAILABLE table1 THEN*/
FIND FIRST table2 WHERE table2.ordernumber=c NO-LOCK NO-ERROR.
IF AVAILABLE table2 THEN
DISPLAY table2.ordernumber table2.orderdate.
END.
END.
在不知道您的 tables/indexes 的情况下,我只能猜测您是否需要进行唯一查找(当前代码)或将 FIRST 选项添加到您的 FIND 语句中。
如果您想要显示 table2.ordernumber 和 table2.orderdate 来代替 table1 中的字段,您可以像这样更改第二个 DISPLAY 语句 - 使用占位符语法:
DISPLAY table2.ordernumber @ table1.ordernumber
table2.orderdate @ table2.orderdate.