Невозможно получить сумму, так как она просит применить группу - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь поместить оператор case, но получаю сообщение об ошибке с просьбой использовать group by.

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

Код работает нормально, однако, если я хочу откомментировать первый оператор сумм, я получаю сообщение об ошибке

не групповая функция для одной группы

1 Ответ

0 голосов
/ 21 мая 2019

Неужели это действительно должна быть 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.

Кстати, почему этот результат сравнивается с строкой (< '1')?Разве это не должно быть число, < 1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...