繁体   English   中英

Crystal Reports:将几行中的值放入自己的列中?

[英]Crystal Reports: Putting values from several rows into their own columns?

我有一个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”,因此我认为可以使用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;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM