‎2009 Sep 11 11:24 AM
Hello Experts,
I have made a select statement in which where condition has 0R , In this I have 4 statsu numbers but it only takes 1 instead of all this 4 status, how can I get this.
select
aufnr
auart
objnr
WERKS
INTO CORRESPONDING FIELDS OF ITAB
from aufk where aufnr IN s_aufnr
and werks in S_IWERK
and auart in s_auart.
select SINGLE STAT
INACT
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND STAT = 'I0009'
OR STAT = 'I0340'
OR STAT = 'I0045'
OR STAT = 'I0321'. " overhere I want all these status numbers
IF SY-SUBRC EQ 0.
APPEND ITAB.
ELSE.
select SINGLE STAT
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND STAT = 'I0002'.
MODIFY ITAB.
ENDIF.
ENDSELECT.Thanks and Regrds,
Nikhil.
‎2009 Sep 11 11:45 AM
‎2009 Sep 11 11:27 AM
Try this
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND ( STAT = 'I0009'
OR STAT = 'I0340'
OR STAT = 'I0045'
OR STAT = 'I0321' ).
or better from performance point of view
from JEST into CORRESPONDING FIELDS OF itab
WHERE ( objnr = ITAB-objnr AND STAT = 'I0009' )
OR ( objnr = ITAB-objnr AND STAT = 'I0340' )
OR ( objnr = ITAB-objnr AND STAT = 'I0045' )
OR ( objnr = ITAB-objnr AND STAT = 'I0321' ).
Regards
Marcin
‎2009 Sep 11 11:27 AM
Hi,
Use this instead:
select
aufnr
auart
objnr
WERKS
INTO CORRESPONDING FIELDS OF ITAB
from aufk where aufnr IN s_aufnr
and werks in S_IWERK
and auart in s_auart.
select SINGLE STAT
INACT
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND STAT in ( 'I0009', 'I0340', 'I0045', 'I0321').
It is like giving range of values.
BR,
Advait
‎2009 Sep 11 11:28 AM
Hi,,
Try this..
select SINGLE STAT
INACT
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND ( STAT = 'I0009'
OR STAT = 'I0340'
OR STAT = 'I0045'
OR STAT = 'I0321'). " overhere I want all these status numbers
Add brackets as shown..
Regards
Ansari
‎2009 Sep 11 11:34 AM
Hi Nikhil,
Try this.
select SINGLE STAT
INACT
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND STAT in ('I0009', 'I0340', 'I0045', 'I0321').
Hope this will help you.
Regards,
Vijay
‎2009 Sep 11 11:37 AM
All the or condition should be inside abracket.
Example
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND ( STAT = 'I0009'
OR STAT = 'I0340'
OR STAT = 'I0045'
OR STAT = 'I0321' ).
You can also append the values of stat into a range table and use that range table in your query.
ranges: r_stat for jest-stat.
r_stat-sign = 'I'.
r_stat-option = 'EQ'.
r_stat-low = 'I0340'
append r_stat.
r_stat-sign = 'I'.
r_stat-option = 'EQ'.
r_stat-low = 'I0045'
append r_stat.
from JEST into CORRESPONDING FIELDS OF itab
WHERE objnr = ITAB-objnr
AND stat in r_stat.
‎2009 Sep 11 11:45 AM
‎2009 Sep 11 11:50 AM
Hi Thomas,
Stupid mistake which I did not see no need of single since I need multiple entries.
Thanks,
Nikhil.