Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 if else expression в COGNOS, прошу помочь.  [new]
Yelibay
Member

Откуда:
Сообщений: 12
Данный фильтр написан, что бы пользователь смог выбрать еще не закончившийся квартал.

Но Когнос не принимает и я бы хотел попросить вашей помощи

с Когносом работаю недели 3

[SQL21].[ACT_DATE] - дата отчета
[SQL21].[Q] - это квартал
[SQL21].[M] - это месяц
?p_date? - переменная отчетной даты

[SQL21].[ACT_DATE] BETWEEN 
IF ([SQL21].[Q]=1 AND [SQL21].[M]=1) THEN (_last_of_month (_add_months (?p_date?;-1))) 
ELSE (IF ([SQL21].[Q]=1 AND [SQL21].[M]=2) THEN (_last_of_month (_add_months (?p_date?;-2))) 
ELSE (IF ([SQL21].[Q]=1 AND [SQL21].[M]=3) THEN (_last_of_month (_add_months (?p_date?;-3))) 
ELSE (IF ([SQL21].[Q]=2 AND [SQL21].[M]=4) THEN (_last_of_month (_add_months (?p_date?;-1))) 
ELSE (IF ([SQL21].[Q]=2 AND [SQL21].[M]=5) THEN (_last_of_month (_add_months (?p_date?;-2))) 
ELSE (IF ([SQL21].[Q]=2 AND [SQL21].[M]=6) THEN (_last_of_month (_add_months (?p_date?;-3))) 
ELSE (IF ([SQL21].[Q]=3 AND [SQL21].[M]=7) THEN (_last_of_month (_add_months (?p_date?;-1))) 
ELSE (IF ([SQL21].[Q]=3 AND [SQL21].[M]=8) THEN (_last_of_month (_add_months (?p_date?;-2))) 
ELSE (IF ([SQL21].[Q]=3 AND [SQL21].[M]=9) THEN (_last_of_month (_add_months (?p_date?;-3))) 
ELSE (IF ([SQL21].[Q]=4 AND [SQL21].[M]=10) THEN (_last_of_month (_add_months (?p_date?;-1))) 
ELSE (IF ([SQL21].[Q]=4 AND [SQL21].[M]=11) THEN (_last_of_month (_add_months (?p_date?;-2))) 
ELSE (IF ([SQL21].[Q]=4 AND [SQL21].[M]=12) THEN (_last_of_month (_add_months (?p_date?;-3)))))))))))))) 
AND _last_of_month (_add_months (?p_date?;-1))
24 авг 17, 07:33    [20745880]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
Serene
Member

Откуда: Москва
Сообщений: 36
Yelibay,

1) правильная конструкция:
IF ( <condition> ) THEN ( <expression> ) ELSE ( <expression> )
2) какую роль в выражении играет [SQL21].[Q]?
24 авг 17, 12:37    [20746662]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
gradus87
Member

Откуда:
Сообщений: 5356
Серьезно. IBM не сподобилась подобием свича?
Вот теперь я не удивле,что у нас тетка - бывшая когносица, считающая себя разработчиком такая тупая.
24 авг 17, 13:02    [20746771]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
alexsmr
Member

Откуда:
Сообщений: 40
Yelibay,

Что значит "Когнос не принимает"? Ошибка? Запрос возращает данные, отличные от ожидаемых?
В данном случае конструкция case - проще и нагляднее.
24 авг 17, 14:09    [20747080]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
Yelibay
Member

Откуда:
Сообщений: 12
Serene,
отчет квартальный
24 авг 17, 20:03    [20747869]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
Yelibay
Member

Откуда:
Сообщений: 12
gradus87,
))))
24 авг 17, 20:04    [20747870]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
Yelibay
Member

Откуда:
Сообщений: 12
alexsmr,

ага ошибка

XQE-V5-0011 V5 syntax error
24 авг 17, 20:09    [20747874]     Ответить | Цитировать Сообщить модератору
 Re: if else expression в COGNOS, прошу помочь.  [new]
alexsmr
Member

Откуда:
Сообщений: 40
Yelibay,

после кода ошибки обычно есть комментарии, где синтаксическая ошибка. Не всегда эти комментарии точны и понятны, но без них проблемы не найти.
Судя по коду ошибки, источник - olap или в режиме dqm. В этом случае могут быть особенности.
Для ответа либо нужны подробности (версия, тип источника) или google в помощь.
25 авг 17, 10:30    [20748526]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить