ABAP-动态内表多行转一行

因为ABAP新语法支持标准SQL语法。所以可以使用case when直接内表取值实现转换
注意AS后的别名要跟动态内表<fs_table>内的动态字段名字保持一致,否则无法赋值

enab可直接更换为内表

select werks,
       matnr,
sum( case when lfdat = '20201028' then menge - bsmng end ) as D20201028,
sum( case when lfdat = '20201029' then menge - bsmng end ) as D20201029,
sum( case when lfdat = '20201030' then menge - bsmng end ) as D20201030,
sum( case when lfdat = '20201031' then menge - bsmng end ) as D20201031,
sum( case when lfdat <= '20201107' and lfdat >= '20201101' then menge - bsmng end ) as D20201101,
sum( case when lfdat <= '20201114' and lfdat >= '20201108' then menge - bsmng end ) as D20201108
from eban
where matnr <> ' '
and   werks = '1010'
and   loekz = ' '
group by werks,matnr
1605575974(1).jpg

1605576109(1).jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容