BIEE 表示变量截取

0
在 仪表盘提示 中以 日期列 创建了一个表示变量 yyyy_mm,格式为“XXXX年XX月”。

因为仪表盘页中有多个分析,其中一个 分析想要根据仪盘表提示的日期列展现当年数据,需要截取 “XXXX年” 的信息。
结果发现分析不能正常显示,查看后台SQL,
substr(T607578.YEAR_MONTH_DESC , 1, 4) = 'substr(''2014年05月'',1,4)', 可以看出截取字符函数 substr 被当作 where 条件后面的 字符串的一部分。。。。

所以,请问各位大神,如何将仪表盘提示中的表示变量截取一部分后 传递给 下面的分析?


捕获12.PNG 捕获.PNG
已邀请:
2

caiyutao - ODI、BIEE高级顾问、数据仓库架构 2014-11-06 回答

试试勾选将此过滤器转换为sql,之后再写。
0

闪亮的杀猪刀 - OBIEE + Informatica 爱好者 2014-11-28 回答

CAST((CAST(SUBSTRING(DIM_PERIOD."YEAR" FROM 3 FOR 4) AS INTEGER)-1) AS VARCHAR(4))
出现错误信息:
“Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 46044] Cannot convert string (199) to integer data. (HY000)”
其中将INTEGER改为double precision即没有了错误信息,请问在BIEE中是否不能将VARCHAR的转化为INTEGER?
0

闪亮的杀猪刀 - OBIEE + Informatica 爱好者 2014-11-28 回答

"DT01 DM_HR_CALENDAR"."YEAR_MONTH_DESC" = CAST(CAST(LEFT('@{yyyy_mm}', 4) as double) - 1 AS CHAR)||RIGHT('@{yyyy_mm}', 3)

要回复问题请先登录注册