【问题标题】:Crystal Reports: Putting values from several rows into their own columns?Crystal Reports:将几行中的值放入各自的列中?
【发布时间】:2013-09-06 11:09:35
【问题描述】:

我有一个 Oracle SQL 查询,当订单在其整个生命周期中都放置了“保留”(用于审核然后发布)时,它会返回同一销售订单的几行数据。

在生成的每一行中,通常都会应用暂停;有时,直到 SO 生命线的后期才应用保留,或者在其生命线的一个阶段根本不应用。

在不同的日期和时间最多可以应用 4 个保全。我想要四个保持列:H1、H2、H3、H4。

我想知道是否可以将销售订单行中的这些值保留在自己的列中?意思是,销售订单 (SO) 详细信息的一个记录行,但在记录的末尾显示四个 Hold 列 - 所以我只有一行而不是 3-4 行。

示例记录输出,每次应用保持时都会生成一行:

SO1 - several SO detail fields - "SCH" hold applied - date applied - date released
SO1 - several SO detail fields - no hold applied yet a user has generated an action against the SO so a record gets written
SO1 - several SO detail fields - "PLN" hold applied - date applied - date released
SO1 - several SO detail fields - "DWN" hold applied - date applied - date released

最终结果:

SO1 - SO detail fields - Hold1 (=SCH) - Hold2 (= null) - Hold3 (= PLN) - Hold4 (= DWN)

我还不知道如何用 PL/SQL 编写代码,所以我想知道这是否可以在 Crystal Reports 中完成?任何帮助表示赞赏。请让我知道还有什么可以提供更好的清晰度。

【问题讨论】:

    标签: sql crystal-reports oracle10g report


    【解决方案1】:

    这被标记为“sql”,所以我假设 SQL 解决方案是可以的。以下查询以四列为中心:

    select SalesOrderId,
           max(case when seqnum = 1 then hold end) as hold1,
           max(case when seqnum = 2 then hold end) as hold2,
           max(case when seqnum = 3 then hold end) as hold3,
           max(case when seqnum = 4 then hold end) as hold4
    from (select s.*, row_number() over (partition by SalesOrderId order by ReleaseDate) as seqnum
          from (<your query>) s
         ) s
    group by SalesOrderId;
    

    我在猜测字段名称是什么,但您需要的结构与此类似。

    【讨论】:

    • 谢谢戈登。你是个好人。我对我拥有的数据和我想看到的数据进行了更详细的描述。希望它会正确粘贴:
    • 粘贴无效;它太长了,而且记事本的格式也很糟糕,所以我会把它分段放在这里。两行中的初始数据: SO Nbr Line Cust Customer CoNbr Type PDD Status A/R Hold Hold Date Applied Time Applied Order Qty Del Qty ------ ---- ---- -------- - ---- ---- --------- ------ -------- ---- ------------ --- --------- --------- -------- 107585 1 8801 ABC Ltd. 106 SLS 26-Jun-13 1 1 SCH 6-Jun-12 31817 5000 0 107585 1 8801 ABC Ltd. 106 SLS 26-Jun-13 1 3 BIH 6-Jun-12 31915 5000 0
    • 我想看到什么:SO Nbr Line Cust Customer CoNbr Type PDD Status A/R Hold Hold1 Hold2 Order Qty Del Qty ------ ---- ---- -- ----- ----- ---- --------- ------ -------- ---- ----- ---- ----- ------- 107585 1 8801 ABC Ltd. 106 SLS 26-Jun-13 1 1 SCH BIH 5000 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多