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

Select statement problem

Former Member
0 Likes
1,040

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.

1 ACCEPTED SOLUTION
Read only

ThomasZloch
Active Contributor
0 Likes
961

Drop the SINGLE and use INTO TABLE.

Thomas

7 REPLIES 7
Read only

MarcinPciak
Active Contributor
0 Likes
961

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

Read only

Former Member
0 Likes
961

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

Read only

Former Member
0 Likes
961

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

Read only

Former Member
0 Likes
961

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

Read only

Former Member
0 Likes
961

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.

Read only

ThomasZloch
Active Contributor
0 Likes
962

Drop the SINGLE and use INTO TABLE.

Thomas

Read only

0 Likes
961

Hi Thomas,

Stupid mistake which I did not see no need of single since I need multiple entries.

Thanks,

Nikhil.