我遇到了sum函数的问题: 数据有一个日期时间列,我想得到谁的日期时间是最大的总和。而且还有其他组织条件。 所以我喜欢:
结果是总和无法处理,它说:'valueToSum不能被玷污'。
我认为causor可能在步骤2中使用最大值作为条件。因为当使用1 = 1来替换条件时,没有问题。
有人可以提供一些建议吗?
答案 0 :(得分:1)
我们通常通过创建其他查询并将其链接到主数据来解决此类问题。由于Crystal Reports只对数据进行了两次传递 - 记录读取和聚合计算,因此无法轻松聚合已聚合的值。
另一种可能性是将'totalvalue'累积到变量中。像下一个可能有用(可能需要调整):
WhilePrintingRecords();
NumberVar totalvalue;
If ({datetime} = Maximum({datetime}, {groupcondition}))
then totalvalue:=totalvalue+value
else 0
此公式(显示totalvalue)需要放入组页脚:
WhilePrintingRecords();
NumberVar totalvalue
在组头中的某个位置,您需要另一个重置totalvalue:
WhilePrintingRecords();
NumberVar totalvalue:=0