Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8802

Re: Join of three tables

$
0
0

Hi Marina,

 

See this join concept

 

JOINS Concept :

 

     Getting the data from Two or More tables into PL using the select statement is called as Joins concept.

requirements:

 

1. Structures / internal tables

2. Alias naming in Select statement.

3. Types of Joins ( Inner Join / Outer Join )

4. On Clause.

 

 

Data : begin of wa ,

           matnr like mara-matnr,

           mbrsh like mara-mbrsh,

           mtart like mara-mtart,

            meins like mara-meins,

            maktx like makt-maktx,

            end of wa.

 

select m~matnr m~mbrsh m~mtart m~meins k~maktx into wa from mara as m inner join makt as k on m~matnr = k~matnr.

 

  write : / wa-matnr , wa-mbrsh, wa-mtart , wa-meins , wa-maktx.

endselect.

 

inner join : gets the data from both tables where ever similer records are matching , non matching records are ignored.

 

outer join: Is called in abap as "left outer join" or "Left Join" , used to fetch data from both tables where ever similer records are found and even the records existing in first table which are not matching with second table also will be returned.

 

Syntax:

select <fields_list> into <target_ara> from <tab1> [as <als_name>] <joined> <tab2> [as <als_name>] on <criteria>.

    abap statements.

endselect.

example code.

REPORT  ZPRG_JOINS_GET2.

Data : begin of wa ,

           matnr like mara-matnr,

           mbrsh like mara-mbrsh,

           mtart like mara-mtart,

            meins like mara-meins,

            maktx like makt-maktx,

            end of wa.

select m~matnr m~mbrsh m~mtart m~meins k~maktx into wa from mara as m inner join makt as k on m~matnr = k~matnr.

  write : / wa-matnr , wa-mbrsh, wa-mtart , wa-meins , wa-maktx.

endselect.

 

State the following statement is true or false?

 

  Number of records fetched in Outer join is less than or equal to number of records fetched in Inner join.

*  statement is "false"

 

  In Outer join allways number of records fetched in greater then or equal to Numbe of records fetched in inner join.

 

 

Try like this

 

  SFLIGHT  :

         CARRID

         FLDATE

         PRICE

   SPFLI

         CARRID

         CITYFROM

         CITYTO

   SBOOK

         CARRID

         CUSTOMID

          BOOKID

 

* example code to get data from Three tables.

DATA : BEGIN OF WA,

            CARRID LIKE SFLIGHT-CARRID,

            FLDATE LIKE SFLIGHT-FLDATE,

            PRICE LIKE SFLIGHT-PRICE,

            CITYFROM LIKE SPFLI-CITYFROM,

            CITYTO LIKE SPFLI-CITYTO,

            CUSTOMID LIKE SBOOK-CUSTOMID,

             BOOKID LIKE SBOOK-BOOKID,

             END OF WA.

SELECT F~CARRID F~FLDATE F~PRICE P~CITYFROM P~CITYTO B~CUSTOMID B~BOOKID INTO WA FROM ( SFLIGHT AS F INNER JOIN SPFLI AS P ON F~CARRID = P~CARRID ) INNER JOIN SBOOK AS B ON F~CARRID = B~CARRID UP TO 200 ROWS.

 

   WRITE : / WA-CARRID , WA-FLDATE , WA-PRICE , WA-CITYFROM, WA-CITYTO , WA-CUSTOMID , WA-BOOKID.

 

ENDSELECT.


Viewing all articles
Browse latest Browse all 8802


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>