Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

example program on join

Former Member
0 Likes
1,536

how we can join two tables show me one example code

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,010

Hi

see this program

TABLES: MARA, MARC.

DATA : BEGIN OF ITAB OCCURS 0 ,

MATNR1 LIKE MARA-MATNR,

WERKS1 LIKE MARC-WERKS,

END OF ITAB.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR,

S_WERKS FOR MARC-WERKS.

*PARAMETERS: P_MATNR LIKE MARA-MATNR,

  • P_WERKS LIKE MARC-WERKS.

*

SELECT MARA~MATNR

MARC~WERKS INTO TABLE ITAB FROM MARA INNER JOIN MARC ON

MARAMATNR EQ MARCMATNR WHERE MARAMATNR IN S_MATNR AND MARCWERKS IN

S_WERKS.

WRITE: / 'MATERIAL NO', 'PLANT'.

LOOP AT ITAB.

WRITE: / ITAB-MATNR1 , ITAB-WERKS1 .

ENDLOOP.

5 REPLIES 5
Read only

Former Member
0 Likes
1,010

Hi!

SELECT MARAMATNR MARAMTART MARC~WERKS

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM MARA

INNER JOIN MARC ON MARAMATNR = MARCMATNR.

Regards

Tamá

Read only

aaron_morden2
Contributor
0 Likes
1,010

See the following SAP Programs:

demo_select_inner_join

demo_select_left_outer_join

Read only

Former Member
0 Likes
1,010

Hi,

This is code for inner join on mara marc and mard.

(Preferbaly you should join two tables at one time.)

Inner join gives intersection of tables. ( Record existing in all three tables will be given)

Outer join for union of two or three tables.


*INNER JOIN FOR THREE TABLES MARA , MARC, MARD.
  SELECT P~MATNR P~MTART P~MEINS F~WERKS G~LGORT INTO

  CORRESPONDING FIELDS OF IT_MAT

      FROM MARA AS P

      INNER JOIN MARC AS F

      ON P~MATNR = F~MATNR

      INNER JOIN MARD AS G

      ON F~WERKS = G~WERKS

      AND P~MATNR = G~MATNR

      WHERE P~MATNR IN S_MATNR.


<b>Code for outer join.</b>

SELECT A~matnr a~mtart a~meins B~werks  INTO

CORRESPONDING FIELDS OF mat_rec

FROM mara as A
LEFT OUTER JOIN marc as B

 ON A~matnr = B~matnr

  where a~matnr in s_matnr.



SELECT   B~werks c~lgort INTO

CORRESPONDING FIELDS OF mat_rec

FROM marc as b
LEFT OUTER JOIN mard as c

 ON b~werks = c~werks

where b~matnr in s_matnr.



reward if useful.

Thanks ,

Madhura

Read only

Former Member
0 Likes
1,011

Hi

see this program

TABLES: MARA, MARC.

DATA : BEGIN OF ITAB OCCURS 0 ,

MATNR1 LIKE MARA-MATNR,

WERKS1 LIKE MARC-WERKS,

END OF ITAB.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR,

S_WERKS FOR MARC-WERKS.

*PARAMETERS: P_MATNR LIKE MARA-MATNR,

  • P_WERKS LIKE MARC-WERKS.

*

SELECT MARA~MATNR

MARC~WERKS INTO TABLE ITAB FROM MARA INNER JOIN MARC ON

MARAMATNR EQ MARCMATNR WHERE MARAMATNR IN S_MATNR AND MARCWERKS IN

S_WERKS.

WRITE: / 'MATERIAL NO', 'PLANT'.

LOOP AT ITAB.

WRITE: / ITAB-MATNR1 , ITAB-WERKS1 .

ENDLOOP.

Read only

Former Member
0 Likes
1,010

Hi

see this program

TABLES: MARA, MARC.

DATA : BEGIN OF ITAB OCCURS 0 ,

MATNR1 LIKE MARA-MATNR,

WERKS1 LIKE MARC-WERKS,

END OF ITAB.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR,

S_WERKS FOR MARC-WERKS.

*PARAMETERS: P_MATNR LIKE MARA-MATNR,

  • P_WERKS LIKE MARC-WERKS.

*

SELECT MARA~MATNR

MARC~WERKS INTO TABLE ITAB FROM MARA INNER JOIN MARC ON

MARAMATNR EQ MARCMATNR WHERE MARAMATNR IN S_MATNR AND MARCWERKS IN

S_WERKS.

WRITE: / 'MATERIAL NO', 'PLANT'.

LOOP AT ITAB.

WRITE: / ITAB-MATNR1 , ITAB-WERKS1 .

ENDLOOP.