当前位置 : 主页 > 网络编程 > 其它编程 >

SAP列转行

来源:互联网 收集:自由互联 发布时间:2023-07-02
有一个报表要对表fmbl进行查询,但有一个期间条件需对于特定的多列进行汇总例如期间是就要获取到TVAL01+TVAL02+TVAL03一开始我的想法是,建立像下面这样的视图,然后查 有一个报表要对表
有一个报表要对表fmbl进行查询,但有一个期间条件需对于特定的多列进行汇总例如期间是就要获取到TVAL01+TVAL02+TVAL03一开始我的想法是,建立像下面这样的视图,然后查

有一个报表要对表fmbl进行查询,但有一个期间条件

技术分享图片

需对于特定的多列进行汇总

技术分享图片

例如期间是

技术分享图片

就要获取到 TVAL01 + TVAL02 + TVAL03

一开始我的想法是,建立像下面这样的视图,然后查询条件直接就可以用 in

技术分享图片

但在ABAP里发现不能直接建立这样的视图。也想过先通过SAP创建视图

技术分享图片

然后,在数据库里删除视图,按我上面的SQL重建。后来想想,这样会导致接手我程序的人不知道这件事就悲剧了,并且不是所有开发人员都可以有权限修改数据库,最终换了下面的办法。

*获取月份SELECTDISTINCTmonatINTOTABLE@DATA(it_monat)FROMtholWHEREmonatIN@s_monat.

然后在LOOP数据时,再LOOP一次月份

LOOPATit_monatINTODATA(lw_monat).IFlw_monat-monat=‘01‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval01.ELSEIFlw_monat-monat=‘02‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval02.ELSEIFlw_monat-monat=‘03‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval03.ELSEIFlw_monat-monat=‘04‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval04.ELSEIFlw_monat-monat=‘05‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval05.ELSEIFlw_monat-monat=‘06‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval06.ELSEIFlw_monat-monat=‘07‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval07.ELSEIFlw_monat-monat=‘08‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval08.ELSEIFlw_monat-monat=‘09‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval09.ELSEIFlw_monat-monat=‘10‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval10.ELSEIFlw_monat-monat=‘11‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval11.ELSEIFlw_monat-monat=‘12‘.wa_output-tval_sum=wa_output-tval_sum+lw_output-tval12.ENDIF.ENDLOOP.

网友评论