Использование таблицы в хранимой процедуре - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть следующая хранимая процедура. Я хочу case when, чтобы показать результат для некоторых значений, определенных в некоторой таблице. Количество строк в этой таблице не определено. Как я могу использовать case when в цикле while, чтобы получить результат для разных условий. Эти условия определены в таблице. Я попробовал следующее, но получил ошибку:

SELECT COUNT(id) AS CNT, AGE_RANGE
FROM
(
  SELECT
   ID,
  (
    (DECLARE pTemp ref_cursor for
    Select * form age_range;

    OPEN pTemp
      FETCH NEXT FROM pTemp into getRange
        While (FETCH_STATUS = 0)
      select rang
      FETCH NEXT FROM pTemp into getRange )
      fn_get_split_values(getRange , min, max)
     case 


      WHEN payer_age >= min AND payer_age <=max THEN 'mini-maxi'
      ELSE 'NO CATEGORY'
      END AS AGE_RANGE

   )
  from REMIT_WORK_QUEUE
  )

1 Ответ

0 голосов
/ 21 февраля 2019

Я считаю, что ваша проблема в том, что вы используете count() в операторе SELECT, но вы не назначаете GROUP BY, чтобы счетчик мог объединить столбец age_range, если это имеет смысл.Попробуйте добавить эту строку в конец:

GROUP BY AGE_RANGE

...