【发布时间】:2017-07-03 07:11:46
【问题描述】:
在我的公司,我们最近从 SSRS 转移到了基于 Cognos 的报告系统,我对 Cognos 整体没有太多经验,并且遇到了一些看起来很容易解决的问题,但我正在苦苦挣扎远。
在我们的数据库中,我们分离了两种联系日期信息 [Date Emailed] 和 [Date Called],我试图将两者结合起来以返回 [Date Contacted] 字段。
我在 Cognos 报表生成器中是否有办法找到这两个数据项的最大值?
我本来希望可以使用如下所示的某种“c = MAX(a,b)”函数,但据我所见,显然不是。
[联系日期] = MAX([电子邮件发送日期], [呼叫日期])
此外,我们无权修改 SQL 或任何与 Cognos 相关的部分,除了报表生成器,这让这一切变得更加有趣。
我觉得答案将是建立一个 CASE 语句来做到这一点,但如果可以的话,我宁愿远离 CASE。
谢谢,
蓝光
【问题讨论】:
-
如果没有使用 Cognos 函数的 IF...THEN 构造的 CASE 语句,我认为您无法做到这一点。但是,您可以尝试数据源特定的功能。当 Cognos 看到适当的数据源特定函数时,它会将它们传递到它们在数据源上执行的位置。不知道你的数据来源,我无法给出更具体的建议。
-
谢谢你,只是证实了我到目前为止的期望。我反对 case/IF..THEN 语句的唯一原因是,当查询的其他部分正在运行时,运行速度被拖慢了。看来没有办法了!
-
根据我的经验,选择一列或另一列的简单 CASE 语句不会明显减慢报告速度。大部分处理时间用于从数据源获取原始数据。 CASE 解决方案是在所有这些都完成之后发生的。如果您想确定,您可以安装我的 Cognos 性能测量脚本,它会在您每次运行报告时提供有关报告运行时间的反馈。链接如下:cogblogger.com/2015/11/…。记下更改前后的时间以查看影响。
标签: business-intelligence cognos cognos-10