是否可以在SUM字段上使用DECODE? 例如,像这样:
DECODE( SUM("QTA' CONV SUM 1 2 2"),'>0',1,'=0',0)
由于
答案 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