Cognos Calculate Variance Crosstab (Relational)

霸气de小男生 提交于 2019-12-24 12:09:36

问题


I have a simple crosstab such as this:

Trans     |    Pants    |    Shirts   |
          | 2013 | 2014 | 2013 | 2014 |
---------------------------------------
Jan       | 33   |  37  |  41  |  53  |
Feb       | 31   |  33  |  38  |  43  |
Mar       | 26   |  29  |  51  |  56  |
  • Pants and Shirt belong to the data item: Category

  • Years belong to the data item: Years

  • Months belong to the data item: Months

  • Trans (transactions) belongs to the data item: Trans

Here is what is looks like in report studio:

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

I want to be able to calculate the variance of pants and shirts between the years. To get something like this:

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     |

I've tried inserting a data item for YOY Variance with the expression below just to see if I can even get the 2014 value but cannot, some odd reason it only returns the 2013 values:

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

Any ideas? Help?


回答1:


(I'm assuming you don't have a DMR.)

There is no easy/clean way to do this in Cognos. In your query, you'll have to build a calculation for each year in your output. So, something like this for 2013:

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

And basically the same for 2014.

Cut the Trans piece out of your crossab. Then you'll nest those two calcs under your years. To get rid of all the zeroes or nulls, select the two columns. From the menu, select Data, Suppress,Suppress Columns Only.

Finally, you will drop a calc in next to your Years in the crosstab (not under them). The expression will be ([2014 trans] - [2013 trans])/[2014 trans] (or whatever you end up naming your calcs). Format it as a percent, and you should be good to go.

Told you it was a pain!



来源:https://stackoverflow.com/questions/23200713/cognos-calculate-variance-crosstab-relational

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!