在Crystal Reports SQL查询中使用复合条件

时间:2012-04-24 20:23:00

标签: crystal-reports crystal-reports-xi

我正在尝试调整查询以考虑复合条件语句,即:

({tablea.fielda} <> 5566 And Not ({tablea.fieldb} like '%889009%))

最初的问题是Crystal将采用该语句并删除外部括号并相互独立地执行语句。我认为我通过将整个语句放在“NOT”语句中并反转条件来解决问题,如下所示:

 Not ({tablea.fielda} = 5566 And ({tablea.fieldb} like '%889009%))

虽然Crystal确实扭转了条件并保持条件分组,但现在将中心and更改为or

这是我刚刚修改之前创建的报告,因此,我不想创建一个视图或存储过程,这会导致我返回并更改报表中的所有字段。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您的第二个代码段是(正确)处理此问题的正确方法。

Not ({tablea.fielda} = 5566 And ({tablea.fieldb} like '%889009%))

Crystal只会通过De Morgan's Law缩小语句。

{tablea.fielda}<>5566 or {tablea.fieldb} not like '%889009%

逻辑是等价的。