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

IN operator error

Former Member
0 Likes
1,282

hi gurus.....

below is my code where i want to add another document type too ,

initially i had to check only one document type

so checked as blart = 'AA' and query is working fine

now need to check for the document type AB too but when i tried

plzzz help me to solve

Thank you ...

SELECT bukrs belnr xblnr blart xreversal FROM bkpf
                              INTO CORRESPONDING FIELDS OF TABLE it_bkpf
                               for all entries in it_pos
                                  WHERE bukrs = it_pos-bukrs
                                     AND  blart= 'AA'  AND
                                     belnr =  it_pos-belnr and
                                     gjahr = it_pos-gjahr
                                     AND  xreversal = ' '
                                  .

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,247

Hi

use the below code

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart IN ('AA' , 'AB') AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '

12 REPLIES 12
Read only

Former Member
0 Likes
1,248

Hi

use the below code

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart IN ('AA' , 'AB') AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '

Read only

0 Likes
1,247

Hi,

There is another workaround.

ranges: r_blart for bkpf-blart.

r_blart-low = 'AA'.

r_blart-sign = 'I'.

r_blart-option = 'EQ'.

append r_blart.

r_blart-low = 'AB'.

r_blart-sign = 'I'.

r_blart-option = 'EQ'.

append r_blart.

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart IN r_blart AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '.

Hope it resolves your issues.

Regards,

Sanjay.

Read only

Former Member
0 Likes
1,247

Its very simple. use the In operator


SELECT bukrs belnr xblnr blart xreversal FROM bkpf
                              INTO CORRESPONDING FIELDS OF TABLE it_bkpf
                               for all entries in it_pos
                                  WHERE bukrs = it_pos-bukrs
                                     AND  blart in ( 'AA' , 'AB')  AND
                                     belnr =  it_pos-belnr and
                                     gjahr = it_pos-gjahr
                                     AND  xreversal = ' '
                                  .


Read only

Former Member
0 Likes
1,247

Hi

Try this

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart IN ('AA', 'AB') AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '

Or you can write as

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND ( blart = 'AA' OR blart = 'AB' ) AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '.

Hope it will help

Regards

Natasha Garg

Edited by: Natasha Garg on Apr 21, 2009 10:55 AM

Read only

Former Member
0 Likes
1,247

hi,

add all the document types in a range field.

and change the query as:

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart IN r_doc_type AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '.

Read only

Former Member
0 Likes
1,247

Thanks all

but i have already mentioned i have tried both the option as

blart in ('AA', 'AB' )

blart = 'AA' and blart ='AB' but then its throwing error...pls suggest different one

Read only

0 Likes
1,247

Hi

Use OR operator for checking 'AA' , 'AB'

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND ( blart = 'AA' OR blart = 'AB' ) AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '

Hope it will help

Regards

Natasha Garg

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
1,247

>

> Thanks all

>

> but i have already mentioned i have tried both the option as

>

> blart in ('AA', 'AB' )

>

>

> blart = 'AA' and blart ='AB' but then its throwing error...pls suggest different one

Hello Friend,

What you are missing is the spaces )

Try:

blart IN ( 'AA' , 'AB' )

Hope this helps.

BR,

Suhas

Read only

Former Member
0 Likes
1,247

Hi,

You can do like:



SELECT bukrs belnr xblnr blart xreversal FROM bkpf
                              INTO CORRESPONDING FIELDS OF TABLE it_bkpf
                               for all entries in it_pos
                                  WHERE bukrs = it_pos-bukrs
                                     AND  blart IN ( 'AA', 'WW')  AND
                                     belnr =  it_pos-belnr and
                                     gjahr = it_pos-gjahr
                                     AND  xreversal = ' '
                                  .

Hope it helps

Regards

Mansi

Read only

Former Member
0 Likes
1,247

Try this,

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart in ('AA' , 'AB') AND

belnr = it_pos-belnr and

gjahr = it_pos-gjahr

AND xreversal = ' '

Regards,

Joan

Read only

Former Member
0 Likes
1,247

thankz the prob is solved by myself

Read only

Former Member
0 Likes
1,247

HI,

You can use this way

data: range type RANGE OF bkpf-blart WITH HEADER LINE.

sort itab by blart.

loop at itab.

at new blart.

range-sign = 'I'.

range-option = 'EQ'.

range-low = '1212'.

append range.

endat.

endloop.

now use the select

SELECT bukrs belnr xblnr blart xreversal FROM bkpf

INTO CORRESPONDING FIELDS OF TABLE it_bkpf

for all entries in it_pos

WHERE bukrs = it_pos-bukrs

AND blart in range

and gjahr = it_pos-gjahr

AND xreversal = ' '

.

regards,

Venkatesh