我熟悉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
有什么建议吗?
答案 0 :(得分:3)
正如Conrad和dotjoe所观察到的,sql where
子句的Crystal等价物是Select Expert - 您应该可以在Report菜单中找到它。
如果您需要在详细信息部分中包含true和false Dead
记录,但只想要Dead
为真的记录的总数,则最简单的方法是设置一个公式项目。为此:
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
答案 1 :(得分:1)
将此添加到记录选择公式...
{datasetname.Dead} = true
//note: I'm not sure what data type that is but CR uses bool for bit and XSD bool
然后将摘要字段添加到执行计数(id)的报表页脚。
或者,如果您需要显示数据集并且只需要子查询,则可以使用称为“Running Total”字段的内容。在这里,您可以执行count(id)并将where子句添加到必要的公式中。