将Microsoft SQL SELECT CASE移植到Crystal Reports 11

时间:2010-11-24 19:16:14

标签: sql crystal-reports-xi

我有一个Microsoft SQL查询:

SELECT case 
          when ReHired Is Null Then HireDate 
          else ReHired 
       end CheckDate
 FROM   
       Employees

这当然会创建一个列 - CheckDate - 使用HireDate或Re-HiredDate。

如何将此相同功能移植到Crystal Reports?

3 个答案:

答案 0 :(得分:2)

我在问这个之前就知道CR中的SQL Expression Fields看起来像我想要的那样,但是我尝试了一些东西而无法让它工作。

然而,最后,我设法..只需创建一个SQL表达式字段,插入选择表达式 - CASE WHEN ReHired IS NULL然后HireDate ELSE ReHired END CheckDate - 。

然后,只需在CR公式和表达式中将其引用为{%CheckDate}即可。非常简单,非常强大,正是我想要的。

希望将来可以帮助其他人。

答案 1 :(得分:0)

在CR中创建名为CheckDate的公式,其中包含以下内容:

if isnull({Employees.ReHired})
then {Employees.HireDate}
else {Employees.ReHired}

并在报告中使用该公式。请注意,当您的报表将“将NULL值转换为默认值”选项集时,您需要将第一行更改为类似的行:

if {Employees.ReHired}=<your db default value for ReHired column>

答案 2 :(得分:0)

将您的“基本”查询构建为sql server上的视图,然后允许crystal对其进行过滤,或者作为在sql server上返回参数化存储过程或函数的表,并使Crystal传递参数。在这两种情况下,包括结果集中的“计算”字段