汇总在特定列上具有0值的两列

时间:2012-09-17 21:56:58

标签: sql crystal-reports report crystal-reports-2008

我确信这是非常不寻常的情况,我似乎无法找到解决方案。

我正在尝试报告SQL DB表;这个表有一个名为sample_bucket的字段,它定义了哪个大小用作样本,在这个表中我们有size01-size24列。 我们还有另一个名为“Type”的字段,我需要在A和B类型之间进行选择。

我在“Formula Fields”中使用了以下代码,根据sample_bucket的内容提取sizeXX,如下所示:

一级方程式:

if {zzpom.Type}= "A" and {zzpom.SAMPLE_BK}=1 then {zzpom.SIZE01}
else
if {zzpom.Type}= "A" and {zzpom.SAMPLE_BK}=2 then {zzpom.SIZE02}
else
.
.
if {zzpom.Type}= "A" and {zzpom.SAMPLE_BK}=24 then {zzpom.SIZE24}
else 0

以及

formula2:

if {zzpom.Type}= "B" and {zzpom.SAMPLE_BK}=1 then {zzpom.SIZE01}
else
if {zzpom.Type}= "B" and {zzpom.SAMPLE_BK}=2 then {zzpom.SIZE02}
else
.
.
if {zzpom.Type}= "B" and {zzpom.SAMPLE_BK}=24 then {zzpom.SIZE24}
else 0

我过滤了{formula1}<>0 or {formula2}<>0但是当我运行报告时,我得到两列而不是一列:

formula1   formula2  |  formula1   formula2  
  6.5         0      |     0         12

我试图总结报告,但看起来CR在传播中运行这些公式!

我需要将这两列合并到:

formula1   formula2  
  6.5         12

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

如果这是在CR内,那么我猜测公式在单独的公式字段中。我会将公式组合成一个字段。

if ({zzpom.Type}= "A" or {zzpom.Type}= "B") and {zzpom.SAMPLE_BK}=1 then {zzpom.SIZE01}
else if ({zzpom.Type}= "A" or {zzpom.Type}= "B") and {zzpom.SAMPLE_BK}=2 then {zzpom.SIZE02}