小编典典

Crystal Reports相当于“ WHERE”

sql

我熟悉SQL,但不熟悉Crystal Reports。我正在尝试处理5列的导入数据集:

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
...

我正在尝试执行子查询,但无法弄清楚SQL中WHERE的CR等效项是什么。我想按照以下方式做一些事情:

SELECT count(id) from tab1 where dead=TRUE

有什么建议?


阅读 182

收藏
2021-04-28

共1个答案

小编典典

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

如果您需要Dead在明细部分中同时包含真实记录和虚假记录,但只希望对真实记录进行总计Dead,那么最简单的方法是设置一个公式项。为此:

  • 右键单击“字段资源管理器”中的“公式字段”选项,然后选择“新建…”。

  • 输入合适的公式字段名称,例如DeadCount

  • 在“公式”编辑器中,输入如下所示的公式(假定Dead为字符串):

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

  • 使用x-2按钮(或Alt-C)检查公式是否没有错误,然后按“保存并关闭”按钮退出公式编辑器。

  • 将新的公式字段从“字段资源管理器”拖放到报表中的任何位置。

  • 右键单击刚添加到报告中的公式字段,然后从菜单中选择“插入”>“摘要…”。

  • 在“插入摘要”对话框中,将“摘要”操作指定为“总和”,将“摘要位置”指定为“总计(报告页脚)”,然后单击“确定”。标记为的类似“摘要”字段Sum of @DeadCount应出现在“报表页脚”中。(现在,您应该从报表设计区域中删除未汇总的公式字段。)

这项技术从本质上类似于在sql查询中包括总和的case值-类似于: select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1

2021-04-28