有一个报表要对表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.