Cognos Crosstab

时间:2015-01-06 16:55:40

标签: crosstab cognos

我正在尝试在Report Studio中生成数据交叉表,但失败了。

我所拥有的列表中的数据是:

  • ID,产品,等级
  • 1,Product1,D
  • 1,Product2,C
  • 1,Product3,D
  • 2,Product1,C
  • 2,Product2,C
  • 2,Product3,A

我想要一个交叉表:

  • ID,Product1,Product2,Product3
  • 1,D,C,D
  • 2,C,C,A

但我在Cognos中生成的交叉表给了我全部空白或计数或“等级”的总和。

  • ID,Product1,Product2,Product3
  • 1,
  • 2,

任何帮助将不胜感激。非常感谢你提前。

最佳, 汤姆

3 个答案:

答案 0 :(得分:3)

交叉表仅适用于数字。 因此交叉表的测量不应该是A,B,C。

  1. 使用数字作为度量(A = 1,B = 2等),使用MAX或MIN作为聚合。
  2. 然后将您的号码转换为单元格内的文本。例如,将“源类型”属性更改为“报表表达式”并编写合适的公式。 (或解锁单元格并在内部拖动查询计算)
  3. 你不能做像

    这样的事情

    ID |产品1 |产品2 |产品3

    1 | D,A | C | d

    2 | C | C |甲

    简单地

答案 1 :(得分:0)

如果我理解正确,您需要为产品等级列使用案例陈述:

ID     PRODUCT1        
1      case when Product = 'Product1' then grade else null end

你可能需要将case语句包装在MAX中,不确定而不尝试。

答案 2 :(得分:0)

根据您的说法,您需要它看起来像列表是最好的选择。

    ID | Case when [Product] = 'Product1' then [grade] end | same for product 2 and 3