New Way of joining multiple internal tables

1

By using FOR loop with new read syntax, multiple internal tables can joined.

 

 

Many times in development, to prepare a final internal tables which contains columns from more than 2 internal tables, loop and read statement are used. Now the same can be done by using FOR loop and by using the new syntax of reading an internal table.

SAMPLE CODE

TYPESBEGIN OF ty_scarr,
                carrid   TYPE scarrcarrid,
                carrname TYPE scarrcarrname,
              END OF ty_scarr,
              BEGIN OF ty_spfli,
                carrid    TYPE spflicarrid,
                connid    TYPE spfliconnid,
                countryfr TYPE spflicountryfr,
                countryto TYPE spflicountryto,
              END OF ty_spfli,
              BEGIN OF ty_flight,
                carrid    TYPE spflicarrid,
                carrname  TYPE scarrcarrname,
                connid    TYPE spfliconnid,
                countryfr TYPE spflicountryfr,
                countryto TYPE spflicountryto,
            END OF ty_flight.
TYPEStt_flight TYPE TABLE OF ty_flight WITH NON-UNIQUE KEY carrid.
DATAlt_scarr  TYPE TABLE OF ty_scarr,
              lt_spfli  TYPE TABLE OF ty_spfli,
              lt_flight TYPE TABLE OF ty_flight.

SELECT carrid carrname FROM scarr INTO CORRESPONDING FIELDS OF TABLE lt_scarr.
SELECT carrid connid countryfr countryto FROM spfli INTO CORRESPONDING FIELDS OF TABLE lt_spfli.

lt_flight VALUE tt_flightFOR ls_spfli IN lt_spfli
                                                       carrid ls_spflicarrid
                                                         carrname lt_scarr[ carrid ls_spflicarrid ]carrname
                                                         connid ls_spfliconnid
                                                         countryfr ls_spflicountryfr
                                                        countryto ls_spflicountryto ).
”  carrname lt_scarr[ carrid ls_spflicarrid ]carrname   -> This line reads the                 carrid line from LT_SCARR table and returns the CARRNAME field.
cl_demo_output=>display_datalt_flight ).


DB Table records.

34

 


OUTPUT

2.jpg


 

2 comments

  1. Hi sir.

    Need some more clarfication in the above syntax.

    carrname = lt_scarr[ carrid = ls_spfli–carrid ]–carrname.

    from carrname i have to fetch another field value from lt_scarr,

    Regards
    Shashank

    Like

    1. lt_scarr[ carrid = ls_spfli–carrid ]–carrname means from LT_SCARR inbternal table reads record where CARRID = LS_SPFLI-CARRID and from that line returns CARRNAME field value.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s