2017-01-30 5 views
0

Я хотел бы взять дату, хранящуюся как что-то вроде и показать что-то вроде Осень 2016 как выражение в Cognos Report Studio (Cognos 10).Должен ли я использовать DECODE или CASE в Cognos 10 Report Studio Expressions?

Мне действительно нужно только проверять месяцы 01, 05 и 09 на зиму, весну и осень.

Я проверил this question около case и decode, и я конвертирую старые отчеты Cognos7 в Cognos 10 Report Studio. Я также прочитал документацию для оператора case для использования внутри предложения Select, но я не вижу примеров того, как писать его как выражение в вычисленном столбце или даже как синглтон (скорее всего, для того, я ищу).

Путь я преобразовал старую технику из Cognos7 в Cognos 10 Report студии что-то вроде:

CONCAT(CONCAT(DECODE(SUBSTR([TermDate],5 ,2),'09','Fall' ,'01','Winter','Spring') 
, ' ') , SUBSTR([TermDate],1 ,4)) 

Я был бы очень заинтересован в том, чтобы сделать это в более эффективной, вплоть до -date в Cognos 10 Report Studio, и нужно ли использовать CASE в полях Expression.

+1

Вы можете конвертировать '[этот вопрос]' в ссылку на вопрос, который вы имеете в виду :-) –

+0

'SUBSTR ([TermDate], ..)' недействителен SQL для Oracle. Является ли '[TermDate]' тем, что заменяется Cognos? –

+0

@a_horse_with_no_name Это имя поля. –

ответ

0

Через несколько минут я понял, что оказался на правильном пути. Вот приблизительное решение.

Следующее выражение может быть введено в поле «Выражение» в Cognos 10 Report Studio либо в виде вычисленного столбца, либо как Singleton.

CASE SUBSTR([TermDate],5 ,2) WHEN '09' THEN 'Fall' 
WHEN '01' THEN 'Winter' 
WHEN '05' THEN 'Spring' 
END || ' ' || SUBSTR([TermDate], 1, 4)