SAP CDS VIEW实现行列转换

文章描述了在SAP系统中,当销售订单上的业务伙伴数据复杂筛选(如售达方和送达方条件)时,如何通过SQL查询无法满足需求,需进行数据的行列转置处理,以ZPRSDT_VBPA_CONV视图为例,展示了如何使用ABAP代码实现这一功能。
摘要由CSDN通过智能技术生成

需求:

销售订单上的业务伙伴数据都在VBPA存储,根据PARVW来区分是售达方或者是送达方等等,有时候一些报表取数时有一些条件,比如售达方等于xxxxx并且送达方等于xxxxx,这时候就不是简单的一条sql就能搞定的事了,如果想通过一条sql就搞定这件事,我们就需要将数据做行列转置处理,常见的需求还多见于物料批次特性值这个场景,也可以按照如下方式实现行转列。

 

实现方式:

@AbapCatalog.sqlViewName: 'ZPRSDVVBPA'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Document: Partner Sold-to&Ship-to'
define view ZPRSDT_VBPA_CONV
  as select from vbpa
{
  key vbeln,
  key posnr,
      @EndUserText.label: 'Sold-to'
      max( case parvw when 'AG' then kunnr else '' end ) as kunnr_sold, //sold to SP
      @EndUserText.label: 'Ship-to'
      max( case parvw when 'WE' then kunnr else '' end ) as kunnr_ship  //ship to SH
}
group by
  vbeln,
  posnr

实现效果:

以上。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeveloperMrMeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值