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: 

Select statement

Former Member
0 Kudos

Hi All

I got an Internal table STAB like

DATA: BEGIN OF STAB OCCURS 0,

BELNR LIKE BKPF-BELNR,

END OF STAB.

I want to read one BELNR from BKPF & NOT IN STAB-BELNR..I am trying belo..but not working..HOW CAN I READ

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO

AND BELNR IN STAB-BELNR.

I declare all the variables correctly.

Only problem with select statement. Can any one correct me ASAP.

Is there any other ways…

Thanks & Regards

Rajendra

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Use select options then Define ur internal table like this....

DATA : BEGIN OF s_tab OCCURS 0,

sign TYPE c,

option(2) TYPE c,

low LIKE mska-werks,

high LIKE mska-werks,

END OF s_tab.

s_tab-sign = 'E'.

s_tab-option = 'BT'.

s_tab-low = rm07m-werks.

s_tab-high = eord-werks.

SELECT matnr werks lgort kalab FROM mska INTO t_mska

WHERE werks IN s_tab AND kalab >= 1 .

Regards

Abhishek

10 REPLIES 10

Former Member
0 Kudos

Hi,

Try this..

Loop at stab.

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO

<b>AND BELNR = STAB-BELNR.</b>

endloop.

Regards,

Shashank

Former Member
0 Kudos

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO.

can u clear ur question more...

Former Member
0 Kudos

Hi Rajendra,

First you have to select the record in the internal table STAB after that you can use it in your where condition.

Former Member
0 Kudos

Hi,

use ranges instead of internal table

ranges r_belnr for bkpf_belnr.

r_belnr-sign = 'I'.

r_belnr-option = 'NE'

r_belnr-low = '00100'.

append r_belnr.

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO

AND BELNR IN r_belnr.

Regards

Amole

Simha_
Employee
Employee
0 Kudos

HI,

loop at stab.

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO

AND BELNR = STAB-BELNR.

endloop.

Hope it helpss..

Cheers,

SImha.

Former Member
0 Kudos

Hi,

you should create STAB like select-option internal table.The IN should used only for Validating select-options.

Regards,

bala.

Former Member
0 Kudos

<b>loop at stab.

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BUKRS = COMPCO and BELNR = STAB-BELNR and

GJAHR = <b>g_gjahr</b> and BLDAT = DATE1

AND BUDAT = DATE2.

endloop.</b>

Basically you can use Select single one when you have all key fields of the table otherwise you should use

<b>loop at stab.

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BUKRS = COMPCO and BELNR = STAB-BELNR and

and BLDAT = DATE1 AND BUDAT = DATE2 up to 1 rows.

endloop.</b>

Rgds,

TM

Former Member
0 Kudos

Hi Rajendra,

DATA : DOCNO LIKE BKPF-BELNR.

  SELECT SINGLE BELNR 
                FROM BKPF 
                INTO DOCNO
                WHERE BLDAT = DATE1
                AND BUDAT = DATE2
                AND BUKRS = COMPCO
                AND BELNR NOT IN STAB-BELNR.

HOW DID YOU DECLARE UR STAB-BELNR???

Former Member
0 Kudos

Hi rajendra,

1. we can use this kind of logic

2. see important code (in bold)

3.

report abc.

DATA: BEGIN OF STAB OCCURS 0,

BELNR LIKE BKPF-BELNR,

END OF STAB.

<b>*----


RANGES : MYBELNR FOR BKPF-BELNR.

data : docno like bkpf-belnr.</b>

<b>LOOP AT STAB.

MYBELNR-SIGN = 'I'.

MYBELNR-OPTION = 'EQ'.

MYBELNR-LOW = STAB-BELNR.

APPEND MYBELNR.

ENDLOOP.</b>

SELECT SINGLE BELNR FROM BKPF INTO DOCNO

WHERE BLDAT = DATE1

AND BUDAT = DATE2

AND BUKRS = COMPCO

<b>where BELNR NOT IN MYBELNR.</b>

regards,

amit m.

Former Member
0 Kudos

Use select options then Define ur internal table like this....

DATA : BEGIN OF s_tab OCCURS 0,

sign TYPE c,

option(2) TYPE c,

low LIKE mska-werks,

high LIKE mska-werks,

END OF s_tab.

s_tab-sign = 'E'.

s_tab-option = 'BT'.

s_tab-low = rm07m-werks.

s_tab-high = eord-werks.

SELECT matnr werks lgort kalab FROM mska INTO t_mska

WHERE werks IN s_tab AND kalab >= 1 .

Regards

Abhishek