微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

if else 语句用于从两个不同的表中查找值

如何解决if else 语句用于从两个不同的表中查找值

我想匹配两个不同表格中的数字,如果在任何表格中找到它,它就会显示......

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.

在不知道您的表/索引的情况下,我只能猜测您是否需要进行唯一查找(当前代码)或将 FIRST 选项添加到您的 FIND 语句中。

如果您想显示 table2.ordernumber 和 table2.orderdate 来代替 table1 中的字段,您可以像这样更改第二个 DISPLAY 语句 - 使用占位符语法:

DISPLAY table2.ordernumber @ table1.ordernumber 
        table2.orderdate @ table2.orderdate.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。