2006 Aug 07 10:40 AM
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.
2006 Aug 11 6:34 AM
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
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
2006 Aug 07 10:43 AM
You would need to qualify the matnr in the where condition.
So basically use mara~matnr = mat.
Regards
Anurag
2006 Aug 07 10:46 AM
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
2006 Aug 07 10:54 AM
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.
2006 Aug 07 11:17 AM
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
2006 Aug 07 11:29 AM
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
2006 Aug 11 6:34 AM
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
2006 Aug 11 6:41 AM
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.
2006 Aug 11 7:45 AM
hi,
you have used 'where matnr eq mat'
instead use 'where mara~matnr eq mat'.
cheers,
Aditya.
2007 Mar 13 3:52 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |