0

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

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

2 回答 2

1

1在您的特定情况下,如果您希望结果SUM大于零或0为零SUM,您可以使用 OracleSIGN函数。我不确定是否有任何特殊的 Discoverer 语法,但在 Discoverer 之外我会这样做:

SIGN(SUM(whatever you're summing))

“techonthenet”站点在此处记录了该功能。

于 2013-04-09T12:45:41.180 回答
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() 的解决方案。保持干燥

于 2013-04-09T12:55:25.280 回答