REDUCE- COUNT in ABAP
Refer - Introduction to REDUCE keyword
Report-Old
REPORT zab_rp_reduce_count.
TABLES: vbak.
DATA: count1 TYPE i,
count2 TYPE i,
count3 TYPE i.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
IF s_vbeln IS NOT INITIAL.
SELECT vbeln,vbtyp
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'.
count1 = count1 + 1.
ENDIF.
IF lr_vbak-vbtyp = 'B'.
count2 = count2 + 1.
ENDIF.
IF lr_vbak-vbtyp = 'C'.
count3 = count3 + 1.
ENDIF.
ENDLOOP.
WRITE: 'Number of entries for A is ', count1.
WRITE: / 'Number of entries for B is ', count2.
WRITE: / 'Number of entries for C is ', count3.
Report-NEW
TABLES: vbak.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
IF s_vbeln IS NOT INITIAL.
SELECT vbeln,vbtyp
FROM vbak
INTO TABLE @DATA(lt_vbak)
WHERE vbeln IN @s_vbeln.
ENDIF.
data(count1) = REDUCE i( INIT c = 0 FOR lr_vbak in lt_vbak WHERE ( vbtyp = 'A' ) NEXT c = c + 1 ).
data(count2) = REDUCE i( INIT c = 0 FOR lr_vbak in lt_vbak WHERE ( vbtyp = 'B' ) NEXT c = c + 1 ).
data(count3) = REDUCE i( INIT c = 0 FOR lr_vbak in lt_vbak WHERE ( vbtyp = 'C' ) NEXT c = c + 1 ).
WRITE: 'Number of entries for A is ', count1.
WRITE: / 'Number of entries for B is ', count2.
WRITE: / 'Number of entries for C is ', count3.
Input
Output
********************************Thank You*****************************
Comments
Post a Comment