我熟悉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
有什么建议?
正如Conrad和dotjoe所观察到的,sqlwhere子句的Crystal等效项是Select Expert-您应该能够在Report菜单上找到它。
where
如果您需要Dead在明细部分中同时包含真实记录和虚假记录,但只希望对真实记录进行总计Dead,那么最简单的方法是设置一个公式项。为此:
Dead
右键单击“字段资源管理器”中的“公式字段”选项,然后选择“新建…”。
输入合适的公式字段名称,例如DeadCount。
DeadCount
在“公式”编辑器中,输入如下所示的公式(假定Dead为字符串):
If {tab1.Dead} = 'TRUE' then 1
使用x-2按钮(或Alt-C)检查公式是否没有错误,然后按“保存并关闭”按钮退出公式编辑器。
x-2
将新的公式字段从“字段资源管理器”拖放到报表中的任何位置。
右键单击刚添加到报告中的公式字段,然后从菜单中选择“插入”>“摘要…”。
在“插入摘要”对话框中,将“摘要”操作指定为“总和”,将“摘要位置”指定为“总计(报告页脚)”,然后单击“确定”。标记为的类似“摘要”字段Sum of @DeadCount应出现在“报表页脚”中。(现在,您应该从报表设计区域中删除未汇总的公式字段。)
Sum of @DeadCount
这项技术从本质上类似于在sql查询中包括总和的case值-类似于: select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1
select sum(case when Dead = 'TRUE' then 1 end) as DeadCount from tab1