【问题标题】:Cognos 10 Filtering a calculated measureCognos 10 过滤计算的度量
【发布时间】:2016-01-15 23:58:08
【问题描述】:

使用交叉表维度报告时,我在过滤掉从计算度量中获得的特定值时遇到问题:

我在 Reporting Studio 中使用以下计算度量来获得所需的输出。

 ROUND(([A1_SCHEDQTY]+[B1_SCHEDQTY]) / ([A1_QTY]+[B1_QTY]) * 100, 1)

但是,在某些情况下,我得到的输出为“/0”,我无法将其过滤掉。我曾尝试使用 IF 语句,但我认为我的语法不正确。

IF (ROUND(([A1_SCHEDQTY]+[B1_SCHEDQTY]) / ([A1_QTY]+[B1_QTY]) * 100, 1) = '/0') THEN NULL ELSE ROUND(([A1_SCHEDQTY]+[B1_SCHEDQTY]) / ([A1_QTY]+[B1_QTY]) * 100, 1)

有什么建议吗?

【问题讨论】:

    标签: filter calculated-columns cognos-10


    【解决方案1】:

    您需要检查等式的除数是否为 0,而不是检查整个等式是否为“/0”。如果你检查整个方程,除以 0 仍然会发生。

    试试这个:

    IF ([A1_QTY]+[B1_QTY] = 0) THEN (NULL) ELSE (ROUND(([A1_SCHEDQTY]+[B1_SCHEDQTY]) / ([A1_QTY]+[B1_QTY]) * 100, 1))
    

    【讨论】:

    • 这确实成功了,谢谢。但是,我在向下钻取行中的父子关系不再显示以前的聚合平均值,而是为我提供了聚合总数。不确定更改列的计算会如何影响向下钻取(层次结构成员)行。
    • @user3208073 :您可能想为此发布一个新问题。我在针对维度源的 Cognos 报告中遇到类似问题,因此我不会提供太多帮助。
    • JerseyMike,有没有其他方法可以从计算中删除 /0?我觉得 IF 语句是导致聚合计算问题的原因。
    • @user3208073 :您需要保留除以 0 的记录吗?如果没有,您可以使用 IF 语句的第一部分作为报告的过滤器,然后一起删除 IF。您也可以尝试突出显示该列,然后从菜单中选择 Data -> Suppress -> Suppression Options。此面板允许您将除以 0 来抑制,但是,我认为它会抑制整行。
    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多