11-26-2007 12:22 PM
hi frds
i am writing the code for inner joint in se38 . That select qurrie is not completed also but from server its using more memory . why like that?
SELECT
A~MBLNR
A~BUDAT
A~XBLNR
B~BWART
B~MATNR
B~WERKS
B~LIFNR
B~MENGE
B~SGTXT
B~UMWRK
INTO CORRESPONDING FIELDS OF TABLE IT_SEL
FROM MKPF AS A INNER JOIN MSEG AS B
ON AMBLNR = BMBLNR
AND AMJAHR = BMJAHR
WHERE A~MBLNR IN S_MBLNR
AND A~BUDAT IN S_BUDAT
AND B~WERKS IN S_WERKS.
i dint save or syntac-chek or exicute just i wrote code on SE38 thats it but at that time my system process ( crt + alt + del ) task manager ---preocesser
its occuring more memory for that nearly 90% usage of memory .... why why why like so ......( just writing the code why its coming like that)
this above statement was not showing like that if I do any changes in this ( if suppose its wrong select qurrie its taking more memory )
if its wrong or any thing why its occuping more memory ( while writing the code in SE38 at that time only any back-ground will go or eny thing else)
plse give detail responce
i am using 6.0 ver.........
11-26-2007 12:24 PM
Hi Madhu,
Dont use Into Corresponding field, Define the internal table with required fields and move into that table.
Use MJAHR & ZEILE fields also in your where clause.
Regards,
Satish
11-26-2007 5:20 PM
Try using the following code and see if it helps.
TYPES: BEGIN OF ty_mkpf,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
budat TYPE mkpf-budat,
xblnr TYPE mkpf-xblnr,
END OF ty_mkpf,
BEGIN OF ty_mseg,
mblnr TYPE mseg-mblnr,
mjahr TYPE mseg-mjahr,
zeile TYPE mseg-zeile,
bwart TYPE mseg-bwart,
matnr TYPE mseg-matnr,
werks TYPE mseg-werks,
lifnr TYPE mseg-lifnr,
menge TYPE mseg-menge,
sgtxt TYPE mseg-sgtxt,
umwrk TYPE mseg-umwrk,
END OF ty_mseg,
BEGIN OF ty_sel,
mblnr TYPE mkpf-mblnr,
budat TYPE mkpf-budat,
xblnr TYPE mkpf-xblnr,
bwart TYPE mseg-bwart,
matnr TYPE mseg-matnr,
werks TYPE mseg-werks,
lifnr TYPE mseg-lifnr,
menge TYPE mseg-menge,
sgtxt TYPE mseg-sgtxt,
umwrk TYPE mseg-umwrk,
END OF ty_sel.
DATA: w_mkpf TYPE ty_mkpf,
w_mseg TYPE ty_mseg,
w_sel TYPE ty_sel ,
it_mkpf type hashed table of ty_mkpf
with unique key mblnr mjahr,
it_mseg type table of ty_mseg,
it_sel type table of ty_sel .
SELECT mblnr
mjahr
budat
xblnr
FROM mkpf
INTO TABLE it_mkpf
WHERE mblnr IN s_mblnr
AND budat IN s_budat.
IF sy-subrc EQ 0.
SELECT mblnr
mjahr
zeile
bwart
matnr
werks
lifnr
menge
sgtxt
umwrk
FROM mseg
INTO TABLE it_mseg
FOR ALL ENTRIES IN it_mkpf
WHERE mblnr EQ it_mkpf-mblnr
AND mjahr EQ it_mkpf-mjahr
AND werks IN s_werks.
IF sy-subrc EQ 0.
SORT it_mseg BY mblnr mjahr zeile.
ENDIF.
ENDIF.
REFRESH it_sel.
LOOP AT it_mseg INTO w_mseg.
AT NEW mjahr.
READ TABLE it_mkpf INTO w_mkpf WITH KEY mblnr = w_mseg-mblnr
mjahr = w_mseg-mjahr
TRANSPORTING
budat
xblnr.
ENDAT.
w_sel-mblnr = w_mseg-mblnr.
w_sel-budat = w_mkpf-budat.
w_sel-xblnr = w_mkpf-xblnr.
w_sel-bwart = w_mseg-bwart.
w_sel-matnr = w_mseg-matnr.
w_sel-werks = w_mseg-werks.
w_sel-lifnr = w_mseg-lifnr.
w_sel-menge = w_mseg-menge.
w_sel-sgtxt = w_mseg-sgtxt.
w_sel-umwrk = w_mseg-umwrk.
APPEND w_sel TO it_sel.
CLEAR w_sel.
ENDLOOP.