繁体   English   中英

Crystal报表-联接表时如何在2个字段之间放置“ OR”条件?

[英]Crystal reports - How to put an “OR” condition between 2 fields when joining tables?

使用针对VS2010的Crytal报告,我正在编写一个新报告。 我正在尝试弄清楚如何在报告中进行以下操作。 请查看我要使用的SQL。 请注意我需要帮助的JOIN中的第一个条件。

SELECT * -- <SOME FIELDS HERE>
FROM CUST_ORDER CUST_ORDER
    INNER JOIN "SALES_TX_HDR" "SALES_TX_HDR" ON         
                (CUST_ORDER."cust_order_no"="SALES_TX_HDR".sale_tx_no OR  -- NOTE THIS  CONDITION
                        CUST_ORDER."cust_order_no"="SALES_TX_HDR".status_hdr_no)
            AND CUST_ORDER."branch_no"="SALES_TX_HDR"."status_branch_no"
            AND CUST_ORDER."workstation_no"="SALES_TX_HDR"."status_wrkst_no"

我可以链接表,但是会在表之间添加“ AND”条件,而不是OR。

UPDATE

让我解释一下这种情况:

下新订单时,

sale_tx_hdr.sale_tx_no =客户订单号和sale_tx_hdr.status_hdr_no

留空。

修改相同的订单后,(向订单支付更多款项)

创建了新的sale_tx_hdr.sale_tx_no,但sale_tx_hdr.status_hdr_no =原始订单号。

因此,当我使用OR条件时,我会看到两个sale_tx_hdr条目,使用任何一个条件都将显示修改或新销售,或者都不显示(如果同时将两个条件与AND一起使用)

谢谢

正如Lan所说,您不能在Database Expert中执行此操作,而是需要通过SQL Command手动添加SQL作为报表的数据源。 您已经有了要使用的查询,因此应该很容易:

创建报表时,无需选择要添加的其他表,只需选择连接下名为“添加命令”的最上面的选项即可,您只需将其粘贴到该查询中即可使用。 您不必担心在视觉上链接字段等问题,并且可以执行数据库支持的所有类型的联接,而Crystal则不支持。

我已经找到了解决方案,而无需使用Sql Command。 我以前没有使用过命令。

使用同一表的别名,然后在第二个字段(OR条件)上将其联接起来就可以了。

不过,编写公式时要格外小心。 @Ryan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM