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

Former Member
0 Likes
1,512

HI,

I have to fetch only data for doc type of particular types.For that

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where blart in ( 'c_dz', 'c_da', 'c_dp' ) and

bukrs eq p_bukrs.

But it is fetching all records irrespective of above mentioned types. Please guide.

Rgds,

khadeer.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,480

Khadeer,

Select bukrs
belnr
budat
blart
kunnr from bkpf
into table it_bkpf
where blart in ( 'c_dz', 'c_da', 'c_dp' ) and
bukrs eq p_bukrs."( 'c_dz', 'c_da', 'c_dp' ) is case sencetive check this carefully

12 REPLIES 12
Read only

Former Member
0 Likes
1,480

Hi,

If you are using the SLECT-OPTIONS for this field s_type, use the extension button and input the values ('c_dz', 'c_da', 'c_dp' )as defaluts then change the query as follows -

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where blart in s_type and

bukrs eq p_bukrs.

Regards

Lekha

Read only

Former Member
0 Likes
1,480

Hi Khadeer,

Alter your select statement as this :

Select bukrs
belnr
budat
blart
kunnr from bkpf
into table it_bkpf
where blart eq  'c_dz'
    and blart eq  'c_da'
    and blart eq  'c_dp'
bukrs eq p_bukrs.

Regards,

Swapna.

Read only

GauthamV
Active Contributor
0 Likes
1,480

hi,

why u r passing 3 diif values there.

use this.

give ur range of doc types in c_dz itself.

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where blart in c_dz and

bukrs eq p_bukrs.

or mention in select statement directly

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where bukrs eq p_bukrs

and blart = 'NB' or 'WA' .... .

Read only

Former Member
0 Likes
1,480

Hi,

Not sure but try this way-

Select bukrs
belnr
budat
blart
kunnr from bkpf
into table it_bkpf
where blart = 'c_dz' or blart =  'c_da' or blart = 'c_dp'  and
bukrs eq p_bukrs.

Regards,

Sujit

Read only

Former Member
0 Likes
1,481

Khadeer,

Select bukrs
belnr
budat
blart
kunnr from bkpf
into table it_bkpf
where blart in ( 'c_dz', 'c_da', 'c_dp' ) and
bukrs eq p_bukrs."( 'c_dz', 'c_da', 'c_dp' ) is case sencetive check this carefully

Read only

Former Member
0 Likes
1,480

Hi,

Write it this way.

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where bukrs eq p_bukrs

and

blart in ( 'c_dz', 'c_da', 'c_dp' ).

Thanks & regards,

Ravi

Read only

Former Member
0 Likes
1,480

hi kadar ,

i am not sure if this works out but try this....

Select bukrs

belnr

budat

blart

kunnr from bkpf

into table it_bkpf

where bukrs eq p_bukrs

and

blart in ( 'c_dz' or 'c_da' or 'c_dp' ).

Read only

0 Likes
1,480

Put the values in capital letter because the values in ' ' are case senstitive and data stored in the table in capital.

Read only

Former Member
0 Likes
1,480

hi.

youe select statemnet is proper.thre is no problem with it...

the only reason for this cud be that the alues for blart maintained in the table are in diffrent format than mentioned by you..

just check if it is case sensitive or something.because generally blart is stored in capital letters.

that can be the problem.your select statement shud work properly.

Read only

Former Member
0 Likes
1,480

I think you have defined constants here, somthing like this.

CONSTANTS: c_dz TYPE blart VALUE 'DZ',

c_da TYPE blart VALUE 'DA',

c_dp TYPE blart VALUE 'DP'.

so when you have defined like this, your select statement should be as below:

SELECT bukrs

belnr

budat

blart

FROM bkpf

INTO TABLE it_bkpf

WHERE blart IN (c_dz, c_da, c_dp) AND

bukrs EQ p_bukrs.

I hope it helps.

Thanks,

Vibha

Read only

Former Member
0 Likes
1,480

Hi,

For such cases we can have range table, which will have all 3 values and then these 3 values would be compared in select statement where clause.

give ur range of doc types in r_blart itself.

RANGES r_blart FOR bkpf-blart.

r_blart-SIGN = 'I'.
r_blart-OPTION = 'EQ'.
r_blart-LOW = 'c_dz'.
APPEND r_blart.

and so on..for other values.

Select bukrs
belnr
budat
blart
kunnr from bkpf
into table it_bkpf
where blart in r_blart 
and bukrs eq p_bukrs

.

Or.

Do this way .

Select bukrs
belnr
budat
blart
from bkpf
into table it_bkpf
where bukrs eq p_bukrs and
blart IN ('DZ','DA','DP').

hope this helps.

thanx,

dhanashri.

Edited by: Dhanashri Pawar on Aug 20, 2008 10:42 AM

Edited by: Dhanashri Pawar on Aug 20, 2008 11:04 AM

Read only

Former Member
0 Likes
1,480

Hi,

Check the following code, its working fine:

tables: bkpf.

data: begin of it_bkpf occurs 0,

bukrs like bkpf-bukrs,

belnr like bkpf-belnr,

budat like bkpf-budat,

blart like bkpf-blart,

end of it_bkpf.

parameters: p_bukrs like bkpf-bukrs.

Select bukrs

belnr

budat

blart

from bkpf

into table it_bkpf

where bukrs eq p_bukrs and

blart IN ('DZ','DA','DP').

loop at it_bkpf.

write:/ it_bkpf-bukrs, it_bkpf-belnr, it_bkpf-budat, it_bkpf-blart.

endloop.

Regards,

Bhaskar