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.