2012-02-24 98 views
2

我熟悉SQL,但不熟悉Crystal Reports。我试图处理导入数据有5列设置:Crystal Reports等效于'WHERE'

id   deathDate   giftDate  giftAmount  Dead 
123   2008-01-06   2011-09-08  25.00   TRUE 
456   2009-06-08   2011-10-13  10.00   TRUE 
789    0    2011-12-04  50.00   FALSE 
... 

我试图做一个子查询,但无法弄清楚CR相当于凡在SQL会是什么。我想沿线做一些事情:

SELECT count(id) from tab1 where dead=TRUE 

有什么建议吗?

+2

尝试选择专家(报告 - >选择专家) – 2012-02-24 22:53:06

回答

3

正如Conrad和dotjoe所观察到的,sql where子句的Crystal等价物是Select Expert - 您应该能够在Report菜单上找到它。

如果您需要在详细信息部分中包含true和false Dead记录,但只需要那些Dead为true的记录的总数,最简单的方法是设置公式项目。要这样做:

  • 右键单击字段资源管理器中的公式字段选项并选择新建...。
  • 输入一个合适的公式字段名称,如DeadCount
  • 在公式编辑器中,输入如下(假设Dead是一个字符串)的公式:

    If {tab1.Dead} = 'TRUE' then 1

  • 使用x-2按钮(或者Alt-C),以检查式不有任何错误,然后按保存并关闭按钮退出公式编辑器。

  • 将新的公式字段从字段资源管理器拖放到报表中的任何位置。
  • 右键单击刚刚添加到报告中的公式字段,然后从菜单中选择插入>摘要...。
  • 在“插入摘要”对话框中,将汇总操作指定为总和,并将汇总位置指定为总计(报表页脚),然后单击确定。报告页脚中应出现一个标记为Sum of @DeadCount的摘要字段。 (你现在应该删除从放置在报表设计区域未汇总公式字段。)

这种技术是基本相似,包括在SQL查询中的总结案值 - 是这样的:select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1

+0

+1您描述了一种替代方式来实现他们的“运行总计”字段。 – dotjoe 2012-02-25 14:33:13

1

一下添加到记录选择公式...

{datasetname.Dead} = true 
//note: I'm not sure what data type that is but CR uses bool for bit and XSD bool 

然后汇总字段添加到报表页脚这不计数(ID)。或者,如果您需要显示数据集并只需要子查询,则可以使用称为“正在运行总计”的字段。在这里,你可以做count(id)并将where子句添加到必要的公式中。