0

我喜欢在 Statement的帮助下在一个 SQL 语句中使用两个聚合函数( COUNT, ) 。我的代码是这样的:SUMCASE WHEN

CASE
      WHEN    (   (   (   (   (CSSC_MASTER_VIEW.ORDER_TYPE = 'OR')
                           OR (OCSSC_MASTER_VIEW.ORDER_TYPE = 'KB'))
                       OR (CSSC_MASTER_VIEW.ORDER_TYPE = 'KE'))
                   OR (CSSC_MASTER_VIEW.ORDER_TYPE = 'OR-TAT'))
               OR (CSSC_MASTER_VIEW.ORDER_TYPE = 'QT-TAT'))
           OR (CSSC_MASTER_VIEW.ORDER_TYPE = 'QT')
      THEN
         COUNT((CSSC_MASTER_VIEW.ORDER_LINE_NUMBER))

      ELSE
         SUM((CSSC_MASTER_VIEW.ORDER_LINE_NUMBER))
   END
      AS Lines_processed

此代码给出错误“Oracle 数据库错误:ORA-00900:无效 SQL 语句”

有人可以帮我吗?

4

2 回答 2

2

删除中的双 ( )

((CSSC_MASTER_VIEW.ORDER_LINE_NUMBER))

SUM((CSSC_MASTER_VIEW.ORDER_LINE_NUMBER))

哦和

CASE WHEN (CSSC_MASTER_VIEW.ORDER_TYPE IN ('OR', 'KB', 'KE', 'OR-TAT', 'QT-TAT', 'QT'))
  THEN COUNT(CSSC_MASTER_VIEW.ORDER_LINE_NUMBER)
  ELSE SUM(CSSC_MASTER_VIEW.ORDER_LINE_NUMBER)
END
AS Lines_processed

也应该工作

于 2013-05-23T15:59:00.310 回答
0

看起来您在 WHEN 子句中嵌套表达式的方式正在杀死您;尝试去掉该语句中的所有括号

编辑:或者,更好的是,使用建议的 vc 74 之类的 IN 语句。

于 2013-05-23T16:09:09.657 回答