07-27-2006 12:21 PM
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
07-27-2006 12:29 PM
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
07-27-2006 12:24 PM
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
07-27-2006 12:24 PM
SELECT SINGLE BELNR FROM BKPF INTO DOCNO
WHERE BLDAT = DATE1
AND BUDAT = DATE2
AND BUKRS = COMPCO.
can u clear ur question more...
07-27-2006 12:25 PM
Hi Rajendra,
First you have to select the record in the internal table STAB after that you can use it in your where condition.
07-27-2006 12:26 PM
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
07-27-2006 12:27 PM
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.
07-27-2006 12:27 PM
Hi,
you should create STAB like select-option internal table.The IN should used only for Validating select-options.
Regards,
bala.
07-27-2006 12:27 PM
<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
07-27-2006 12:28 PM
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???
07-27-2006 12:28 PM
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.
07-27-2006 12:29 PM
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