【发布时间】:2020-09-29 07:36:06
【问题描述】:
我已经尝试了几个小时来获得我认为的在 IBM Cognos / Report Studio 10.0 中工作的简单 if-then-else 语句。 我只是想在查询中创建一个数据项,以确定日期是星期几,然后返回计算日期。
if (cast(_day_of_week([Expected Delivery Date],1), integer) = 1)
then (_add_days([Expected Delivery Date],2))
else (current_date)
后端数据库是 Informix。我收到错误“相应的数据类型必须在 CASE 表达式或 DECODE 中兼容”。
我已经尝试了所有我能想到的变体:有/无演员表,使用 case/when/then。我还创建了一个单独的数据项:
[计算星期几](数据项 - 计算正确)
cast(_day_of_week([Expected Delivery Date],1), integer)
[计算到期发货日期](数据项)
if ([Calc Day of Week] = 1)
then (_add_days([Expected Delivery Date],2))
else (current_date)
即使在我的下一个数据项中使用该数据项,我也会收到相同的错误。
我只能认为它不理解我基于整数进行比较并尝试返回日期 - 但如果是这种情况,我如何创建数据项来执行这样的计算?
非常感谢任何帮助。
【问题讨论】:
-
也许当 Cognos 将其转换为本机 Informix 时,它会搞砸?你能用 Informix 原生函数试试这个吗?
标签: informix sqldatatypes cognos-10