我喜欢在COUNT
Statement的帮助下在一个SQL语句中使用两个聚合函数(SUM
,CASE 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语句”
有人可以帮我吗?
答案 0 :(得分:2)
删除
中的double()((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
也应该工作
答案 1 :(得分:0)
看起来你如何嵌套WHEN子句中的表达式是什么在扼杀你;尝试摆脱该陈述中的所有括号
编辑:或者,更好的是,使用像vc 74建议的IN语句。