‎2006 Sep 24 5:51 PM
Hello friends,
I have to select data from data base based on a where condition from an internal table.
In It_BSID the field Vbeln is sometimes blank. So i have to select data into IT_KNVP where IT_BSID-vbeln is blank.
Below is the code that i ahve used and has errors.
SELECT kunnr
parvw
kunn2
INTO TABLE it_knvp
FROM knvp
FOR ALL ENTRIES IN it_bsid
WHERE it_bsid-vbeln is initial
and kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
Any suggestions.
Shejal Shetty.
‎2006 Sep 24 5:58 PM
Hi
What do you need to extract?
You can't use FOR ALL ENTRIES option in this situation
You have to split the record with VBELN and without VBELN
LOOP AT IT_BSID WHERE VBELN = ' '.
APPEND IT_BSID TO IT_BSID_2.
ENDLOOP.
SELECT kunnr
parvw
kunn2
INTO TABLE it_knvp
FROM knvp
FOR ALL ENTRIES IN it_bsid_2
WHERE kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
Max
‎2006 Sep 24 5:58 PM
Hi
What do you need to extract?
You can't use FOR ALL ENTRIES option in this situation
You have to split the record with VBELN and without VBELN
LOOP AT IT_BSID WHERE VBELN = ' '.
APPEND IT_BSID TO IT_BSID_2.
ENDLOOP.
SELECT kunnr
parvw
kunn2
INTO TABLE it_knvp
FROM knvp
FOR ALL ENTRIES IN it_bsid_2
WHERE kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
Max
‎2006 Sep 24 6:00 PM
Thanks MAX,
So I have to use another Internal table. IS there no way that i can do this without using another internal table.
However i dont want to loop it_bsid.
Shejal.
‎2006 Sep 24 6:03 PM
Can i do it in this way,
LOOP AT IT_BSID WHERE VBELN = ' '.
SELECT kunnr
parvw
kunn2
INTO it_knvp
FROM knvp
WHERE kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
endselect.
endloop.
Shejal Shetty.
‎2006 Sep 24 6:05 PM
Max is right.. you don't have an option but loop at it_bsid once & use another itab with the FOR ALL ENTRIES option..
or
delete it_bsid where vbeln is initial
and parvw EQ 'RE'.
and then use yor select
~Suresh
‎2006 Sep 24 6:07 PM
Hi
Yes of course, but in this way u don't use FOR ALL ENTRIES option:
LOOP AT IT_BSID WHERE VBELN = ' '.
SELECT kunnr
parvw
kunn2
INTO it_knvp
FROM knvp
WHERE kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
<b>APPEND IT_KNVP.</b>
endselect.
endloop.
or
LOOP AT IT_BSID WHERE VBELN = ' '.
SELECT kunnr
parvw
kunn2
<b>APPENDING TABLE IT_KNVP</b>
FROM knvp
WHERE kunn2 EQ it_bsid-kunnr
and parvw EQ 'RE'.
endloop.
Max
‎2006 Sep 24 6:07 PM
Hi,
writing a select statement in a loop will cause a performance issue.
You can use the code suggested by MAX.
Regards,
Azaz Ali.
‎2006 Sep 24 6:07 PM