如何在Crystal Report中汇总id为某个数字的列上的数据

时间:2015-03-16 19:24:57

标签: crystal-reports sap crystal-reports-xi crystal-reports-2010

我是Crystal Reports的新手,并且一直试图解决这个问题。我正在运行Crystal Reports XI。请帮忙。

The data:
 john respMonitor    5
 abe  case mgmt      4   
 Cy   test1          4
 Claire respMonitor  5
 Moe   test3         2 
 Bob   case mgmt     8
 Lynn  respMonitor   4 
 Rick  test2         33
 Ray   test1         31
 Al    test1         24
 etc. 

我想创建以下数据:

group           cost
 sumOfTests1_3      124.0  <====== want a sum of tests only
 respMonitor     5.0
 caseMgmt        7.0
 respMonitor     3
 respMonitor     2
 caseMgmt        4
 etc.

所以我希望能够只在总结测试的同时让其他组独自一人。

I created a sql expression field:
 {%testCM}
(
SELECT sum("Patient"."cost") From PatientTbl 
    Where "PatientTbl"."group"= 'test1' OR
    "PatientTbl"."group"= 'test2' OR
    "PatientTbl"."group"= 'test3' 
)

In my Record Selection I have:
 {PatientTbl.group} in ["respMonitor","case mgmt", "test1","test2","test3"]

I also created a formula field:
 If {PatientTbl.group} in ["test1", "test2","test3"] Then
      {%testCM}

公式字段中是否应该有一个Else块来打印其余部分? 我不知道如何仅仅总结组“测试”的成本,同时让其他组仍然单独打印出来。不知道从哪里开始。

谢谢, 约翰

2 个答案:

答案 0 :(得分:1)

我认为你不需要SQL表达式。只需添加此公式并将其用作组表达式,然后将成本相加。具有一个成本的组仍将显示正确的值。

if {PatientTbl.group} in ["test1", "test2","test3"] Then
    "Test1-3"
else
    {PatientTbl.group}

答案 1 :(得分:0)

一种方法是创建一个子报告来完成测试的总和,并在主报告中在子报告之后插入另外一个部分放置该字段,并在显示测试时写入该部分的抑制条件。

抑制条件是:

if {PatientTbl.group} in ["test1", "test2","test3"] Then
true
else
    false