我正在尝试放置案例声明,但出现错误,要求我使用分组依据。
select (CASE
--WHEN sum( GREATEST ( '0', t1.LIFT_TEAM_A )+ GREATEST ( '0', t1.LIFT_TEAM_B ))<'1' OR le.LIFT_EXCLUDE = '1' THEN 'BAU'
when t1.LIFT_TEAM_A = '1' AND to_char( ln.min_date_of_effect, 'yyyy-mm-dd')>= '2015-01-15' THEN 'Express'
WHEN t1.LIFT_TEAM_B = '1' AND to_char( ln.min_date_of_effect, 'yyyy-mm-dd')>= '2015-01-15' THEN 'Standard'
else 'other'
end ) LIFT_TEAM
FROM LIFT_DEALS T1
left join
LENDNET.OLS_VW_APP_SUBMITTED_DATE ln
on t1.case_id=ln.application_id
LEFT JOIN
lift_exclude LE
ON LE.CASE_ID=T1.CASE_ID
代码可以正常工作,但是如果我想取消对第一个sum语句的注释,那么我会得到错误提示,
不是单组分组功能
答案 0 :(得分:0)
它真的必须是一个SUM
函数吗?
这就是您现在拥有的:
WHEN SUM (
GREATEST ('0', t1.LIFT_TEAM_A)
+ GREATEST ('0', t1.LIFT_TEAM_B)) < '1'
OR le.LIFT_EXCLUDE = '1'
THEN
'BAU'
难道不是简单的
WHEN GREATEST ('0', t1.LIFT_TEAM_A)
+ GREATEST ('0', t1.LIFT_TEAM_B) < '1'
OR le.LIFT_EXCLUDE = '1'
THEN
'BAU'
如果是这样,那么您也不需要GROUP BY
子句。
顺便说一下,为什么将这个结果与 string (< '1'
)进行比较? < 1
不是数字吗?