【问题标题】:Cognos Calculate Variance Crosstab (Relational)Cognos 计算方差交叉表(关系)
【发布时间】:2014-06-05 17:07:24
【问题描述】:

我有一个简单的交叉表,例如:

Trans     |    Pants    |    Shirts   |
          | 2013 | 2014 | 2013 | 2014 |
---------------------------------------
Jan       | 33   |  37  |  41  |  53  |
Feb       | 31   |  33  |  38  |  43  |
Mar       | 26   |  29  |  51  |  56  |
  • 裤子和衬衫属于数据项:类别

  • 属于数据项的年份:Years

  • 月份属于数据项:月份

  • Trans(交易)属于数据项:Trans

这是报表工作室中的样子:

Trans     |      <#Category#>     |      <#Category#>     |
          | <#Years#> | <#Years#> | <#Years#> | <#Years#> |
-----------------------------------------------------------
<#Months#>|  <#1234#> |  <#1234#> | <#1234#>  | <#1234#>  |

我希望能够计算不同年份的裤子和衬衫的差异。要得到这样的东西:

Trans     |           Pants            |           Shirts           |
          | 2013 | 2014 | YOY Variance | 2013 | 2014 | YOY Variance |
---------------------------------------------------------------------
Jan       | 33   |  37  |     12.12    | 41   |  53  |     29.27    |
Feb       | 31   |  33  |     6.45     | 38   |  43  |     13.16    |
Mar       | 26   |  29  |     11.54    | 51   |  56  |     9.80     |

我尝试使用下面的表达式为 YOY Variance 插入数据项,只是为了看看我是否能得到 2014 年的值但不能,有些奇怪的原因是它只返回 2013 年的值:

Total([Trans] for maximum[Year],[Category],[Months])

有什么想法吗?帮助?

【问题讨论】:

    标签: crosstab cognos


    【解决方案1】:

    (我假设您没有 DMR。)

    在 Cognos 中没有简单/干净的方法可以做到这一点。在您的查询中,您必须在输出中为每一年构建一个计算。所以,2013 年是这样的:

    total (if [Years] = 2013) then ([Trans]) else (0))
    

    2014 年基本相同。

    从你的crossab上剪下Trans部分。然后,您将在您的年份下嵌套这两个计算。要删除所有零或空值,请选择两列。从菜单中选择DataSuppress,Suppress Columns Only.

    最后,您将在交叉表中的年份旁边放置一个计算器(而不是在它们下方)。表达式将是([2014 trans] - [2013 trans])/[2014 trans](或任何你最终命名你的计算的东西)。将其格式化为百分比,你应该很高兴。

    告诉过你这很痛苦!

    【讨论】:

    猜你喜欢
    • 2015-06-24
    • 2015-03-04
    • 2019-10-22
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多