【问题标题】:Cognos equivalent of Excel Sumif() function without a static variable没有静态变量的 Excel Sumif() 函数的 Cognos 等效项
【发布时间】:2015-03-25 02:42:02
【问题描述】:
这是我发现的以下示例,它确实可以用作 sumif 函数。
总计(
案例
当 [免费标志] = 'FALSE'
然后 [总保证金]
否则为空
结束
[商品代码])
我的问题是如何替换“FALSE”部分并让表达式反映该特定行的 [免费标志]。因此,随着报告的建立,每一行中的总数可能会从该项目代码的总数和免费标志为 false 切换为 true,具体取决于特定行中的内容。
这无法运行,我相信这可能是不可能的。
【问题讨论】:
标签:
cognos
sumifs
cognos-10
cognos-8
【解决方案1】:
您将 [Item Code] 作为您要汇总到的列,但您可以汇总到多个列。
试试这个:
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。
【解决方案2】:
我认为您可以将其导出为每一行的计算列:
(
case
when [free of charge flag] = 'FALSE'
then [Total Margin]
else null
end
)
然后把它加起来。