ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Meshes → Meshes - Using Mesh Paths → FOR ... IN mesh_path
FOR Expressions for Mesh Paths
This example demonstrates table comprehensions and table reductions for mesh paths.
Other versions: 
 7.31 | 7.40 | 7.54
Source Code
    input( ).
    TRY.
        out->begin_section(
          'Initial Association SCARR\_spfli' ).
        DATA(spfli_tab) = VALUE t_spfli(
          FOR spfli_wa IN
            flights-scarr\_spfli[ flights-scarr[ carrname = name ]
                                   WHERE countryto = country ]
             ( spfli_wa ) ).
        out->write( spfli_tab ).
        DATA(distance) = REDUCE spfli-distance(
          INIT d TYPE spfli-distance
          FOR spfli_wa IN
            flights-scarr\_spfli[ flights-scarr[ carrname = name ]
                                   WHERE countryto = country ]
             NEXT d = d + SWITCH spfli-distance( spfli_wa-distid
                                   WHEN 'KM'
                                     THEN spfli_wa-distance * '1.60934'
                                   WHEN 'MI'
                                     THEN spfli_wa-distance
                                   ELSE 0 ) ).
        out->write( |Sum of distances in miles: { distance }| ).
        out->next_section(
          'Chained Association SCARR\_spfli\_sairport' ).
        DATA(sairport_tab) = VALUE t_sairport(
          FOR sairport_wa IN
            flights-scarr\_spfli[ flights-scarr[ carrname = name ]
                                   WHERE countryto = country
                                  ]\_sairport[
                                    USING KEY primary_key ]
            ( sairport_wa ) ).
        out->write( sairport_tab ).
        out->next_section(
          'Chained Association' &&
          ' SCARR\_spfli\_sflight\^_sflight~spfli' ).
        spfli_tab = VALUE t_spfli(
          FOR spfli_wa IN
            flights-scarr\_spfli[ flights-scarr[ carrname = name ]
                                   WHERE countryto = country
                                  ]\_sflight[
                                   WHERE planetype = plane1 OR
                                         planetype = plane2
                                 ]\^_sflight~spfli[ ]
             ( spfli_wa ) ).
        out->write( spfli_tab ).
      CATCH cx_sy_itab_line_not_found.
        out->write( 'Exception!' ).
    ENDTRY.
    out->display( ).
Description
This example uses the same mesh paths as the executable example for 
LOOP AT and produces the same results sets. Unlike LOOP AT, the rows in the results set are produced in a results table using
table comprehensions and not as individual rows.
For the first mesh path, a table
reduction is also performed using the reduction operator 
REDUCE. This totals the distances, with the conversion from kilometers
to miles done using a SWITCH expression.