在Crystal Reports中,我想添加WHERE field <> date
来过滤掉报表中数据库中NULL
值的日期。
我在后端使用旧的FoxPro数据库,它从我的报告中生成一个SQL语句,但似乎没有向生成的语句添加WHERE
子句。
当直接访问FoxPro后端时,带有psudo-NULL值的日期的日期为1899-12-30
,但是当它们从FoxPro通过Crystal拉出时,它们显示为12/30/99
(这可能是同一天只以MM/DD/YY
格式显示。
我注意到该报告有一个现有的参数字段,提示用户将原始查询过滤到特定的日期范围。除了参数字段之外,我还尝试添加自己的参数字段,但发现我需要的WHERE field <> date
不是可用选项,因为主要只有3种类型的字段参数:
离散
远程
离散且远程
这些似乎都不能使用WHERE NOT
类型的子句过滤查询结果,是否有其他方法可以做到这一点?
答案 0 :(得分:1)
将此添加到您的记录选择公式:
// remove actual nulls
AND Not(Isnull({table.date_field}))
// remove old dates
AND {table.field} <> date(1899,12,30)
// remove dates not in select parameter value
AND {table.field} IN {@date_parameter}
答案 1 :(得分:0)
我真正需要做的就是在SQL语句的WHERE
子句中添加一些标准,在SQL客户端中很简单,但是当你在Crystal Reports v10中这样做时,它有点难以找到,除非你知道你在找什么......
所以我需要做的是:
Details
部分)Select Expert
工具栏上的Experts
按钮。Select Expert
对话框中,字段名称应显示在标签中。WHERE
条件。