【发布时间】:2018-05-07 23:02:44
【问题描述】:
Crosstab 报告的工作率为 99%。 大约 20 行,除了 1 行都可以。 5 列 - 公司部门。 这些行是成本、收入、收入 2 等内容。 所有有效的行都有我用来选择它们的三个属性: 财政年度 时期 解决方案。 问题是有一个表格列出了每个时期的 YTD 汇率。该表不是部门特定的;它是全公司的。 所有表都链接到具有会计年度和期间的会计期间表。因此,整体查询根据提示页面结果将数据限制为会计年度 (?pFiscalYear?) 和期间
我尝试了一个直接的 if then 子句: 如果 (sourcetable.fiscalYear = ?pFiscalYear?) 和 (sourcetable.Period = ?pPeriod?) 那么 (ACT_YTD_RT) 但我收到这样的错误: 'ACT_YTD_RT' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。 (SQLSTATE=42000, SQLERRORCODE=8120)
如果我创建另一个生成正确响应的查询并尝试包含它,我会收到一个交叉连接错误,即我引用的查询正在尝试交叉连接交叉表查询中的其他几个项目。
联合不起作用(列数不同)。 由于比率表中不存在除法,因此不确定联接将如何工作。
我也许可以在数据库中创建一个视图,将除法表和费率表交叉连接,将其添加到框架中,然后我不会有交叉连接,因为解决方案将在费率“表”中(真正的观点),但这似乎是错误的。
如果我可以直接向数据库编写一个可怕的参数化查询,我就完成了。但是在 Cognos 11 交叉表中,我找不到 SQL 查询对象的位置。这不应该是必要的。
我花了好几个小时在圈子里追逐这个。
有人有什么想法吗?
谢谢 保罗
【问题讨论】:
-
这个问题真的可以改写。很难了解正在发生的事情,而且似乎缺少信息(导致“交叉连接错误”的查询是什么)。
标签: business-intelligence cognos