IBM Cognos中CASE/IF语句类型不兼容报错QE-DEF-0459求助
问题与解决方案
问题详情
- 需求:当字段
[Statut dossier]值为'Att 1 sv'时,计算当前日期与[Date start]之间的天数,否则返回0 - 报错代码:
QE-DEF-0459 CCLException Incompatible data types in CASE statements - 原CASE语句:
CASE WHEN ([Statut dossier] = 'Att 1 sv') THEN (_days_between (current_date;[Date start])) ELSE (0) END
- 尝试的IF语句:
IF ([Statut dossier] = 'Att 1 sv') THEN (_days_between (current_date;[Date start]) ELSE ('0')
报错原因
CASE/IF语句要求所有分支返回相同数据类型:
_days_between函数返回数值类型(整数天数)- ELSE分支的
'0'是字符串类型,两者类型不兼容触发报错
修正后的语句
修正CASE语句
CASE WHEN ([Statut dossier] = 'Att 1 sv') THEN _days_between(current_date; [Date start]) ELSE 0 END
修正IF语句
IF ([Statut dossier] = 'Att 1 sv') THEN _days_between(current_date; [Date start]) ELSE 0 END
注意:IF语句需确保语法完整(原语句缺少闭合括号),同时统一返回数值类型的0,不要加引号。
内容的提问来源于stack exchange,提问作者sophie morin
相关产品推荐
相关产品推荐

