【问题标题】:Cognos SQL multiple rows to one rowCognos SQL 多行到一行
【发布时间】:2018-03-07 16:13:12
【问题描述】:

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

stock_code     note_sequence      stock_note
++++++++++  +++++++++++++    ++++++++++
3051715                1                    成套出售
3051715                2 来自供应商 9999 15;但是
3051715                3                    将单独出售

stock_code      stock_note
++++++++++  +++++++++++++++
3051715    成套出售,来自供应商 999 15;但会单独出售

【问题讨论】:

    标签: cognos-10


    【解决方案1】:

    添加三个新数据项,我们将它们称为 NS 1NS 2NS 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 将在逗号分隔列表中包含每个股票代码的所有适当注释。

    【讨论】:

      【解决方案2】:

      Report Studio 中有一个名为Repeater 的对象。 Repeater 是一个必须链接到查询 的数据容器。在 Repeater 中,您可以放置​​一个链接到数据项 stock_noteTextItem,并使用逗号放置另一个 TextItem

      您可以将 Repeater 放置在 List 的列中(例如,在列表边缘添加 TextItem查询计算)。将此列添加到 List 后,单击挂锁图标并将 Repeater 置于列内

      中继器的查询必须通过主从关系链接到列表的查询(查看中继器查询的属性)

      (主从关系的缺点是性能损失)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 2022-08-15
        • 1970-01-01
        • 1970-01-01
        • 2012-07-11
        • 1970-01-01
        相关资源
        最近更新 更多