Application Development 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: 

help in IN statment

Former Member
0 Kudos

hallow

i wont to use in like this ut it bring me all time errors what is wrong

IF <wa_lcl_pers_tab>-infty IN ( '0000' , '0001' , '0002' , '0003' , '0004' , '0005' ).

endif.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

use range option

ranges r_werks for marc-werks.

r_werks-low = '0000'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0001'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0002'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0003'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0004'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0005'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

IF <wa_lcl_pers_tab>-infty IN r_werks.-> use like this

Thanks

Seshu

5 REPLIES 5

Former Member
0 Kudos

use range option

ranges r_werks for marc-werks.

r_werks-low = '0000'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0001'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0002'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0003'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0004'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

r_werks-low = '0005'.

r_werks-option = 'EQ'.

r_werks-sign = 'I'.

append r_werks.

IF <wa_lcl_pers_tab>-infty IN r_werks.-> use like this

Thanks

Seshu

Former Member
0 Kudos

Hi,

- Define a range using statement RANGES, e.g. r_values.

- Pass values one after another to r_values along with sign, options, low. Don't pass high value, keep it initial.i.e.


   CLEAR r_values.
   r_values-sign   = 'EQ'.
   r_values-option = 'I'.
   r_values-low    = '0000'.
   APPEND r_values.

- Repeat second step for all values.

- Use this range in your IF, i.e

   IF <wa_lcl_pers_tab>-infty IN r_values.

<b>OR</b>

   IF <wa_lcl_pers_tab>-infty = '0000' 
   OR <wa_lcl_pers_tab>-infty = '0001' 
   OR <wa_lcl_pers_tab>-infty = '0002' 
   OR <wa_lcl_pers_tab>-infty = '0003' 
   OR <wa_lcl_pers_tab>-infty = '0004' 
   OR <wa_lcl_pers_tab>-infty = '0005'.

 ENDIF.

Reward points if the answer is helpful.

Regards,

Mukul

Former Member
0 Kudos

IN like you had can be used in SELECT statement not in IF statement. Try using a range or do something like this.


IF <wa_lcl_pers_tab>-infty EQ '0000' OR
   <wa_lcl_pers_tab>-infty EQ '0001' OR
   <wa_lcl_pers_tab>-infty EQ '0002' OR
   <wa_lcl_pers_tab>-infty EQ '0003' OR
   <wa_lcl_pers_tab>-infty EQ '0004' OR
   <wa_lcl_pers_tab>-infty EQ '0005' ).

ENDIF. 

Former Member
0 Kudos

Check the IF Condition statement :

IF <f> = <f11> OR <f> = <f 12> OR <f> = ...

<Statement block>

ELSEIF <f> = <f21> OR <f> = <f 22> OR <f> =...

<Statement block>

ELSEIF <f> = <f21> OR <f> = <f 22> OR <f> =...

<statement block>

ELSEIF <f> = ...

...

ELSE.

<statement block>

ENDIF.

Thanks

Seshu

0 Kudos

I think you can only us the "IN" with a discrete list within a Select e.g.

  select *
    into table gt_sbook
    from sbook
    where class not in ('C','F','Y').

otherwise use a range, as suggested above.