我想过滤掉水晶报告中的数据。目前,我在记录选择中有以下公式:isnull({T_TABLE.SOME_COLUMN})
。
显然,如果我们在Crystal Report中使用某些函数,它就不会转换为SQL查询(即它不会像T_TABLE.SOME_COLUMN IS NULL
那样添加SQL语句。
由于此检查非常基本,因此我希望将此条件推送到生成的SQL语句,因为在数据库级别而不是Crystal Report上过滤应该更快。根据我读到的内容,将某些条件推送到SQL语句的可能方法是使用SQL Expression Fields
。但我似乎无法写T_TABLE.SOME_COLUMN IS NULL
。它给出了错误:FROM keyword not found where expected
。
知道如何解决这个问题吗?
[编辑]:IsNull
如果是isnull({T_TABLE.SOME_COLUMN})
,似乎会被推送。但如果是某种观点,例如isnull({V_VIEW.SOME_COLUMN})
,它不会被推动。
答案 0 :(得分:0)
IsNull()
函数实际上被推送到SQL查询,条件是它不与Crystal Report Record Selection公式中的某个值进行比较。
因此IsNull({T_TABLE.SOME_COLUMN})
转换为SQL查询T_TABLE.SOME_COLUMN IS NULL
。但是IsNull({T_TABLE.SOME_COLUMN}) = true
不会。