Cognos 11.2数据模块中能否基于已有自定义SQL表创建新表?
Cognos 11.2中基于自定义SQL表创建新自定义SQL表的可行性
这个需求无法直接通过「新建->自定义SQL表」的方式实现。原因很明确:自定义SQL表的语句是直接发送给底层数据库执行的,而你创建的customSQLt1只是Cognos数据模块内部的逻辑对象,底层数据库里根本不存在这张表,所以数据库无法识别customSQLt1这个表名,自然会抛出表达式错误。
不过可以通过以下几种替代方式实现你的需求:
- 使用数据模块的查询对象:先创建一个查询引用customSQLt1,再基于这个查询创建新的查询。这种方式是在Cognos的逻辑层处理数据,能正常识别已有自定义SQL表的结果。
- 合并SQL逻辑:把customSQLt1的完整SQL作为子查询嵌入到customSQLt2的语句中,比如写成:
这样提交给数据库的是完整的可执行语句,就能正常运行。select * from ( -- 这里放入customSQLt1的完整SQL语句 select ... from 数据库表 ) as customSQLt1 - 底层创建视图:如果需要长期复用customSQLt1的逻辑,直接在底层数据库中创建对应逻辑的视图,然后在Cognos数据模块中导入这个视图。之后你就能在自定义SQL表里直接引用该视图来创建customSQLt2。
内容的提问来源于stack exchange,提问作者malval
相关产品推荐
相关产品推荐

