REPORT z075_0004.
OPEN CURSOR @DATA(dbcur1) FOR
SELECT carrid, COUNT(*) AS count
FROM spfli WHERE carrid = 'AA'
GROUP BY carrid
ORDER BY carrid.
OPEN CURSOR @DATA(dbcur2) FOR
SELECT *
FROM spfli
ORDER BY carrid.
DATA: BEGIN OF counter,
carrid TYPE spfli-carrid,
count TYPE i,
END OF counter,
spfli_tab TYPE TABLE OF spfli.
DO.
FETCH NEXT CURSOR @dbcur1 INTO @counter.
IF sy-subrc <> 0.
EXIT.
ENDIF.
cl_demo_output=>next_section( |{ counter-carrid
}, { counter-count }| ).
FETCH NEXT CURSOR @dbcur2
INTO TABLE @spfli_tab PACKAGE SIZE @counter-count.
cl_demo_output=>write( spfli_tab ).
ENDDO.
CLOSE CURSOR: @dbcur1,
@dbcur2.
cl_demo_output=>display( ).