首页 > 解决方案 > Crystal Reports - 公式中的 Where 子句用于计算第二个表中字段的总和

问题描述

我试图在我的报告中得到一个结果,我相信它需要一个 where 子句,并且不适用于选择专家部分。

我有 2 张桌子。我们称它们为表 1 和表 2。

表 1 包含唯一记录。

表 2 包含与表 1 相同的 uniqueKey 的多条记录。

表 2 中有 3 个字段对表 1 中的每个 uniqueKey 进行滚动。

  1. 数量_ORD
  2. QTY_SHIPPED
  3. 项目_取消

让我们假设表 1 中的项目 #1,表 2 中有 5 条记录。每条记录都有上述 3 个字段的值。我需要显示 ITEM_CANCEL = 0 of QTY_SHIPPED - QTY_ORD 的所有记录的总和。

可能有 3 条记录的 ITEM_CANCEL = 1(我们可以忽略这些记录),但对于其他 2 条 ITEM_CANCEL = 0 的记录,我需要 QTY_SHIPPED 的总和 - QTY_ORD 的总和。

我目前的代码如下“

if {current_order1.ITEM_CANCEL} = 0 then
sum({current_order1.QTY_ORD})-sum({current_order1.QTY_SHIPPED}) else
0

但是这个结果给了我所有记录的总和,包括那些 ITEM_CANCEL = 1 的记录。

如果我在选择专家中使用 ITEM_CANCEL = 0,那么它会删除表 2 中没有值的所有结果。我什至尝试了不使用 SUM 函数的代码,但这提供了表 2 中仅 1 条记录的结果其中 ITEM_CANCEL = 0,而不是我需要的表 2 中 2 条记录的总差异。

对此有何建议?

标签: crystal-reports

解决方案


从详细级别的公式开始(无 SUM):

if {current_order1.ITEM_CANCEL} = 0 then {current_order1.QTY_ORD} - {current_order1.QTY_SHIPPED} ELSE 0

然后,在您需要的任何组或报告级别对该公式求和。


推荐阅读