2014-11-06 135 views
3

我熟悉Excel和SQL,但是对于Cognos来说是新的。我正在为每个[Item Code][Total Margin]的有条件总和。这个结果应该显示在每个项目的每一行上。我在Cognos中尝试了两种方法,并在Excel中进行了概念验证。请参阅下面的单个[Item Code]的样本数据。Cognos等价于excel的sumif()函数

data screenshot

共有相关产品保证金A(COGNOS)

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

这里的问题是,总的结果是不正确的,只是没有显示在第二排。

共有相关产品保证金B(COGNOS)

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

在这里,总的结果是大多数行是正确的,但在第2行不同。

共有相关产品空白C(EXCEL)

=SUMIFS([Total Margin],[Item Code],'10001430',[free of charge flag],FALSE) 

所以我能得到我想要使用Excel公式SUMIFS的结果。 Cognos查询需要写什么才能直接从Cognos获得相同的结果?

回答

5

尝试

total(
    case 
    when [free of charge flag] = 'FALSE' 
    then [Total Margin] 
    else null 
    end 
for [Item Code]) 
+0

这工作,谢谢!计算新系统的查询语法有时会令人沮丧。似乎在这里需要一个嵌套CASE WHEN。 – RedSirius 2014-11-06 13:47:31

+0

有时,当您无法查看{expression}如何真正使用的示例时,Cognos 10中的工具提示有时几乎无用。这是一个很好的例子。 – 2017-03-02 16:16:57