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

Doubt in Inner Join

Former Member
0 Likes
1,192

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 : mat 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 mat.

  • 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
1,148

Hello Arun,

Try like this,

select a~matnr

b~maktx

c~lgort

c~labst

into corresponding fields of tabe itab from

( mara as a inner join makt as b

on amatnr = bmatnr

inner join mard as c

on amatnr = cmatnr )

where matnr eq mat.

Reward if useful.

Vasanth

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 : mat 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 mat.

  • 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.

9 REPLIES 9
Read only

Former Member
0 Likes
1,148

You would need to qualify the matnr in the where condition.

So basically use mara~matnr = mat.

Regards

Anurag

Read only

Former Member
0 Likes
1,148

Arun,

While addressing the inner join its always a better practice to name your dbtables with alias name.

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 mat.

In your abovesaid the ABAP Processor is not sure which material number you are trying for a where condition. Hence use alias name for every table else code the following :

where mara~matnr = mat.

Hope this will solve your problem.

Reward if convinced.

Regards

Read only

Former Member
0 Likes
1,148

hi Arun ,

See the code below . It will be useful for U .

SELECT A~LIFNR

B~BUKRS

C~EKORG

A~KTOKK

A~NAME1

A~STRAS

A~ORT01

A~REGIO

A~PFORT

A~PSTLZ

A~PSTL2

A~TELF1

INTO TABLE ITAB

FROM LFA1 AS A JOIN LFB1 AS B ON ALIFNR = BLIFNR

JOIN LFM1 AS C ON ALIFNR = CLIFNR

WHERE A~LIFNR IN S_LIFNR AND

B~BUKRS IN S_BUKRS AND

C~EKORG IN S_EKORG AND

A~KTOKK IN S_KTOKK.

Read only

Former Member
0 Likes
1,148

hi do like this :;

select mara~matnr

makt~maktx

mard~lgort

mard~labst

into corresponding fields of iab

from <b>mara inner join makt</b>

on maramatnr = maktmatnr inner join mard on maktmatnr = mardmatnr

<b>where matnr = mat.</b>

Regards

Ashok P

Read only

Former Member
0 Likes
1,148

hi Arun,

Do this way..

select a~matnr 
       b~maktx 
       c~lgort 
       c~labst 
  into corresponding fields of iab from mara  as a 
  inner join maktx as b 
  on a~matnr = b~matnr 
  inner join mard as c 
  on b~matnr = c~matnr 
  where matnr eq mat.

Regards,

Santosh

Read only

Former Member
0 Likes
1,149

Hello Arun,

Try like this,

select a~matnr

b~maktx

c~lgort

c~labst

into corresponding fields of tabe itab from

( mara as a inner join makt as b

on amatnr = bmatnr

inner join mard as c

on amatnr = cmatnr )

where matnr eq mat.

Reward if useful.

Vasanth

Read only

Former Member
0 Likes
1,148

Hi Arun try this...

select mara~matnr

makt~maktx

mard~lgort

mard~labst

into corresponding fields of itab

from mara inner join makt

on maramatnr = maktmatnr

inner join mard

on maktmatnr = mardmatnr

where mara~matnr eq mat.

Read only

former_member184495
Active Contributor
0 Likes
1,148

hi,

you have used 'where matnr eq mat'

instead use 'where mara~matnr eq mat'.

cheers,

Aditya.

Read only

Former Member
0 Likes
1,148

how many join conditions used in table