REPORT demo_cte.
CLASS demo DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF struct,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
cnt TYPE int8,
END OF struct.
CLASS-DATA itab TYPE TABLE OF struct WITH EMPTY KEY.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DATA carrid TYPE spfli-carrid VALUE 'LH'.
cl_demo_input=>request( CHANGING field = carrid ).
carrid = to_upper( carrid ).
WITH
+conns AS (
SELECT carrname, connid, cityfrom, cityto
FROM spfli
JOIN scarr ON spfli~carrid = scarr~carrid
WHERE spfli~carrid = @carrid ),
+cnts AS (
SELECT COUNT(*) AS cnt
FROM +conns )
SELECT *
FROM +cnts
CROSS JOIN +conns
ORDER BY carrname, connid
INTO CORRESPONDING FIELDS of TABLE @itab.
cl_demo_output=>display( itab ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).
上图代码输出结果:

看到结果输出很容易理解代码需要实现的效果了。