是否可以在 SUM 字段上使用 DECODE ?例如,像这样:
DECODE( SUM("QTA' CONV SUM 1 2 2"),'>0',1,'=0',0)
1
在您的特定情况下,如果您希望结果SUM
大于零或0
为零SUM
,您可以使用 OracleSIGN
函数。我不确定是否有任何特殊的 Discoverer 语法,但在 Discoverer 之外我会这样做:
SIGN(SUM(whatever you're summing))
“techonthenet”站点在此处记录了该功能。
@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() 的解决方案。保持干燥