REDUCE- SUM in ABAP

                                    Refer - Introduction to REDUCE keyword


Report-Old

    REPORT zab_rp_reduce_sum.

    TABLESvbak.
    DATA: sum1 TYPE netwr_ak,
          sum2 TYPE netwr_ak,
          sum3 TYPE netwr_ak.
    SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.

    IF s_vbeln IS NOT INITIAL.
      SELECT vbeln,vbtyp,netwr
        FROM vbak
        INTO TABLE @DATA(lt_vbak)
        WHERE vbeln IN @s_vbeln.
    ENDIF.

    LOOP AT lt_vbak INTO DATA(lr_vbak).
      IF lr_vbak-vbtyp 'A'.
        sum1 sum1 + lr_vbak-netwr.
      ENDIF.
      IF lr_vbak-vbtyp 'B'.
        sum2 sum2 + lr_vbak-netwr.
      ENDIF.
      IF lr_vbak-vbtyp 'C'.
        sum3 sum3 + lr_vbak-netwr.
      ENDIF.
    ENDLOOP.

    WRITE: 'Sum of amount for A is 'sum1.
    WRITE: 'Sum of amount for B is 'sum2.
    WRITE: 'Sum of amount for C is 'sum3.

Report-NEW

    REPORT zab_rp_reduce_sum.

    TABLES: vbak.
    DATA: sum1 TYPE netwr_ak,
          sum2 TYPE netwr_ak,
          sum3 TYPE netwr_ak.
    SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.

    IF s_vbeln IS NOT INITIAL.
      SELECT vbeln,vbtyp,netwr
        FROM vbak
        INTO TABLE @DATA(lt_vbak)
        WHERE vbeln IN @s_vbeln.
    ENDIF.
    sum1 REDUCE #INIT FOR lr_vbak in lt_vbak WHERE vbtyp 'A' NEXT + lr_vbak-netwr ).
    sum2 REDUCE #INIT FOR lr_vbak in lt_vbak WHERE vbtyp 'B' NEXT + lr_vbak-netwr ).
    sum3 REDUCE #INIT FOR lr_vbak in lt_vbak WHERE vbtyp 'C' NEXT + lr_vbak-netwr ).

    WRITE: 'Sum of amount for A is 'sum1.
    WRITE: 'Sum of amount for B is 'sum2.
    WRITE: 'Sum of amount for C is 'sum3.


Input



Output



********************************Thank You*****************************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).