Cognos 等效于 Excel Sumif() 函数,没有静态变量

Cognos equivalent of Excel Sumif() function without a static variable

这是我发现的以下示例,它确实可以用作 sumif 函数。

总计(
案例
当[免费标志] = 'FALSE'
然后[总保证金]
否则为空
结束
[项目代码])

我的问题是如何替换 'FALSE' 部分并让表达式反映该特定行的 [free of charge flag]。因此,随着报告构建,每一行中的总数可能会从该项目代码的总数和免费标志的假值变为真值,具体取决于特定行中的内容。

这无法 运行,我认为这不可能。

我认为您可以将其导出为每一行的计算列:

(
case
when [free of charge flag] = 'FALSE'
then [Total Margin]
else null
end
)

然后合计。

您将 [项目代码] 作为要汇总到的列,但您可以汇总到多列。

试试这个:

total([Total Margin] for [Item Code],[free of charge flag])

这将计算 [项目代码] 和 [免费标志] 的所有组合的总计。对于给定的 [项目代码] 'TRUE' 和 'FALSE' 行将有自己的值。

此外,如果您不想在值为 'TRUE' 时显示总计,那么您可以将其包装在 CASE 语句中:

CASE [free of charge flag]
WHEN 'FALSE' THEN total([Total Margin] for [Item Code],[free of charge flag]) 
ELSE NULL
END

所有带有 'FALSE' 的行将显示该特定行的 [Item Code] 的总计,所有其他行将为 NULL。