Cognos SQL多行到一行

时间:2018-03-07 16:13:13

标签: cognos-10

我遇到的问题是注释表允许多个条目,我希望每个股票代码在一行中。我希望在查询方面完成此操作。我已经厌倦了几种不同的方式,我知道在sql中做到这一点,但我一直得到无法识别的查询框架响应(示例显示打击

stock_code note_sequence stock_note
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3051715 1已售出 3051715 2 来自供应商9999 15;但是 3051715 3将另售    
stock_code stock_note
++++++++++ +++++++++++++
3051715已售出,来自供应商999 15;但将单独出售

2 个答案:

答案 0 :(得分:0)

添加三个新数据项,我们称之为 NS 1 NS 2 NS 3

NS 1

CASE [note_sequence] 
WHEN 1 THEN [stock_note] 
ELSE null 
END

NS 2

CASE [note_sequence] 
WHEN 2 THEN [stock_note] 
ELSE null 
END

NS 3

CASE [note_sequence] 
WHEN 3 THEN [stock_note] 
ELSE null 
END

将每个新数据项的聚合函数设置为“最大值”。

为了连接结果,您必须创建一个新查询并使现有查询成为新查询的源。从原始查询中提取所有数据项。

在新查询中,使用以下表达式创建名为 stock_notes 的新数据项:

[NS 1] || ',' || [NS 2] || ',' || [NS 3]

每个 stock_code 的结果应该是一行,新数据项 stock_notes 将以逗号分隔的列表中的每个股票代码包含所有相应的注释。< / p>

答案 1 :(得分:0)

Report Studio中有一个名为 Repeater 的对象。 Repeater 是一个必须链接到查询的数据容器。在 Repeater 中,您可以将 TextItem 链接到数据项stock_note,将另一个 TextItem 与逗号放在一起。

您可以将 Repeater 放在 List 的列中(例如,创建 TextItem 或者查询计算)。将此列添加到列表后,单击挂锁图标并将 Repeater 放在列中。

转发器的查询必须通过主 - 详细信息关系链接到列表查询(查看Repeater查询的属性)

(主 - 细节关系的缺点是性能损失)