Oracle Discoverer BI:如何将DECODE用于使用SUM的计算

时间:2013-04-09 12:39:50

标签: oracle plsql discover

是否可以在SUM字段上使用DECODE? 例如,像这样:

DECODE( SUM("QTA' CONV SUM 1 2 2"),'>0',1,'=0',0)

由于

2 个答案:

答案 0 :(得分:1)

在您的特定情况下,如果1大于零,您希望结果为SUM;如果0为零,则SUM结果为SIGN,您可以使用Oracle SIGN(SUM(whatever you're summing)) 函数。我不确定是否有任何特殊的Discoverer语法,但在Discoverer之外我会这样做:

{{1}}

“techonthenet”网站记录了函数here

答案 1 :(得分:0)

@EdGibbs的替代方法,如果你要求的值是整数:

Greatest(Sum(...),1)

如果你有可能与之抗争,那么可能:

Least(Greatest(Sum(...),1),0)

语法有点粗糙所以如果你确实想坚持使用Decode或Case:

Case Sum(...)
  When 0 Then 0
  Else 1
End

......或......

Decode(Sum(...),0,0,Sum(...))

我不会寻求重复Sum()的解决方案。保持DRY