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

joins

Former Member
0 Likes
651

Hi all,

In a report program i have used a inner join. I am getting error in the where condition. Here I have furnished part of my code for ur reference.

Tables : mara, makt, mard.

data : begin of itab occurs 0,

matnr like mara-matnr,

maktx like makt-maktx,

lgort like mard-lgort,

labst like mard-labst,

end of itab.

parameters : matnr like mara-matnr.

start-of-selection.

select maramatnr maktmaktx mardlgort mardlabst into corresponding fields of iab from mara inner join maktx on maramatnr = maktmatnr inner join mard on maktmatnr = mardmatnr where matnr eq matnr.

  • in the where condition I am getting the following error message.

matnr has two meanings in data dictionary.

Please help me in sort out this problem and also tell me more abt inner joins.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
628

Hi,

No expert on inner joins, but this is how I do it...

select amatnr bmaktx clgort clabst into corresponding fields of iab from

( ( mara as a

inner join makt as b on amatnr = bmatnr )

inner join mard as c on amatnr = cmatnr )

where a~matnr = {where condition}.

The where condition is usually something outside the select statement, i.e. a passed variable, etc.

Regards,

Satish.

Hi all,

In a report program i have used a inner join. I am getting error in the where condition. Here I have furnished part of my code for ur reference.

Tables : mara, makt, mard.

data : begin of itab occurs 0,

matnr like mara-matnr,

maktx like makt-maktx,

lgort like mard-lgort,

labst like mard-labst,

end of itab.

parameters : matnr like mara-matnr.

start-of-selection.

select maramatnr maktmaktx mardlgort mardlabst into corresponding fields of iab from mara inner join maktx on maramatnr = maktmatnr inner join mard on maktmatnr = mardmatnr where matnr eq matnr.

  • in the where condition I am getting the following error message.

matnr has two meanings in data dictionary.

Please help me in sort out this problem and also tell me more abt inner joins.

4 REPLIES 4
Read only

Former Member
0 Likes
628

Hi,

Try this

Tables : mara, makt, mard.

data : begin of itab occurs 0,

matnr like mara-matnr,

maktx like makt-maktx,

lgort like mard-lgort,

labst like mard-labst,

end of itab.

parameters : s_matnr like mara-matnr.

start-of-selection.

select maramatnr maktmaktx mardlgort mardlabst into corresponding fields of itab from ((mara inner join makt on maramatnr = maktmatnr) inner join mard on maktmatnr = mardmatnr )where matnr eq s_matnr.

Read only

Former Member
0 Likes
628

HI Sashi,

Select AMATNR BMAKTX CLGORT CLABST INTO CORRESPONDING FIELDS OF TABLE ITAB FROM (MARA AS A INNER JOIN MAKT AS B ON AMATNR = BMATNR) INNER JOIN MARD AS C ON AMATNR = CMATNR WHERE MATNR = P_MATNR.

Reward if useful

Regards

ANUPAM

Read only

paruchuri_nagesh
Active Contributor
0 Likes
628

hi

here iam giving example program

REPORT ZINNERJOINS no standard page heading line-count 60(4).

TABLES : LFA1,EKKO,EKPO.

SELECT-OPTIONS : S_LIFNR FOR LFA1-LIFNR.

DATA : BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

EBELP LIKE EKPO-EBELP,

MENGE LIKE EKPO-MENGE,

END OF ITAB.

SELECT LFA1LIFNR LFA1NAME1 EKKOEBELN EKKOAEDAT EKPOEBELP EKPOMENGE INTO TABLE ITAB FROM LFA1 INNER JOIN EKKO ON LFA1LIFNR = EKKOLIFNR

INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN WHERE LFA1~LIFNR IN S_LIFNR.

LOOP AT ITAB.

WRITE:/ ITAB-LIFNR,ITAB-NAME1,ITAB-EBELN,ITAB-AEDAT,ITAB-EBELP,ITAB-MENGE.

ENDLOOP.

top-of-page.

write : / 'this is vendors report'.

i think u have to write where mara~matnr eq matnr

Reward if u find useful

Regards

Ngesh.Paruchuri

Read only

Former Member
0 Likes
629

Hi,

No expert on inner joins, but this is how I do it...

select amatnr bmaktx clgort clabst into corresponding fields of iab from

( ( mara as a

inner join makt as b on amatnr = bmatnr )

inner join mard as c on amatnr = cmatnr )

where a~matnr = {where condition}.

The where condition is usually something outside the select statement, i.e. a passed variable, etc.

Regards,

Satish.