Cognos计算方差交叉表(关系)

时间:2014-04-21 15:46:51

标签: crosstab cognos

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

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

  • 年份属于数据项:

  • 月份属于数据项:

  • 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])

有什么想法吗?救命?

1 个答案:

答案 0 :(得分:1)

(我假设你没有DMR。)

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

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

2014年基本相同。

从你的横臂上切下Trans片。那么你将在你的岁月之下嵌套这两个计算。要删除所有零或空值,请选择两列。从菜单中选择DataSuppressSuppress Columns Only

最后,您将在交叉表中的年份旁边放置一个计算结果(不在它们之下)。表达式将是([2014 trans] - [2013 trans])/[2014 trans](或者您最终命名为计算结果的任何内容)。将其格式化为百分比,您应该好好去。

告诉你这是一种痛苦!