有没有办法使用正在进行的动态查询有条件地应用内部联接?

Is there a way to conditionally apply an inner join using dynamic queries in Progress?

我正在尝试将 table 与另一个 table 进行内部联接,但仅当右侧 table 存在条件而不是 table右边 table 链接到左边的字段 table。例如,假设我有一个客户 table 和一个联系人 table,查询的结构如下:

FOR EACH Customer NO-LOCK [optional conditions], FIRST Contact NO-LOCK WHERE Contact.ContactID EQ Customer.ServiceContactID [optional conditions]

如果特定客户的 ServiceContactID 在联系人 table 中没有相应的记录,则该客户将从结果集中排除。如果查询的联系人部分没有可选条件,我不希望该客户被排除在结果集中。

在我使用的代码库部分,我无法根据用于可选条件的值有条件地添加查询的联系人部分的连接。除了使用传递给框架的值自动构建的条件部分外,查询必须保持不变。有没有办法在进行中做到这一点?

如果您所能做的只是将值替换为预先存在的查询结构,那么,不,您不能执行您描述的操作。