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

Regarding : Nested select Statement

Former Member
0 Likes
459

Hi All ,

Could you please give me some idea how to remove this nested select , because this performance is not good. What would be logic for this code

DATA : BEGIN OF ITAB OCCURS 0,

QMNUM LIKE QMEL-QMNUM,

FENUM LIKE QMFE-FENUM,

MANUM LIKE QMSM-MANUM,

QMART LIKE QMEL-QMART,

MAWERK LIKE QMEL-MAWERK,

IDNLF LIKE QMEL-IDNLF,

DEVICEID LIKE QMEL-DEVICEID,

LICHN LIKE QMEL-LICHN,

KURZTEXT1 LIKE QPCT-KURZTEXT,

KURZTEXT2 LIKE QPCT-KURZTEXT,

VBELN LIKE QMEL-VBELN,

ERNAM LIKE QMEL-ERNAM,

QMTXT LIKE QMEL-QMTXT,

QMCOD LIKE QMEL-QMCOD,

OTEIL LIKE QMFE-OTEIL,

FECOD LIKE QMFE-FECOD,

FETXT LIKE QMFE-FETXT,

MNCOD LIKE QMSM-MNCOD,

PARNR LIKE IHPA-PARNR,

PARNR1 LIKE QMSM-PARNR,

MATXT LIKE QMSM-MATXT,

PSTER LIKE QMSM-PSTER,

INDTX1 LIKE QMEL-INDTX,

INDTX2 LIKE QMEL-INDTX,

INDTX3 LIKE QMEL-INDTX,

NAME1 LIKE ADRC-NAME1,

PETER LIKE QMSM-PETER.

DATA : END OF ITAB.

DATA : BEGIN OF LINE1 OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA : END OF LINE1.

DATA : BEGIN OF LINE2 OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA : END OF LINE2.

DATA : BEGIN OF LINE3 OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA : END OF LINE3.

DATA: W_ORDER(16) TYPE C,

W_KURZTEXT1 LIKE QPCT-KURZTEXT,

W_KURZTEXT2 LIKE QPCT-KURZTEXT,

W_LINE LIKE SY-TABIX,

W_NAME1 LIKE ADRC-NAME1

START-OF-SELECTION.

SELECT * FROM QMEL

WHERE QMNUM = S_QMNUM.

SELECT * FROM QMFE

WHERE QMNUM = QMEL-QMNUM

AND FENUM IN S_FENUM.

SELECT SINGLE * FROM IHPA

WHERE OBJNR = QMEL-OBJNR

AND PARVW = 'KU'.

SELECT SINGLE * FROM QPCT

WHERE CODEGRUPPE = QMFE-OTGRP

AND CODE = QMFE-OTEIL.

IF SY-SUBRC = 0.

W_KURZTEXT1 = QPCT-KURZTEXT.

ENDIF.

SELECT SINGLE * FROM QPCT

WHERE CODEGRUPPE = QMFE-FEGRP

AND CODE = QMFE-FECOD.

IF SY-SUBRC = 0.

W_KURZTEXT2 = QPCT-KURZTEXT.

ENDIF.

SELECT SINGLE * FROM ADRC

WHERE ADDRNUMBER = QMEL-ADRNR.

W_NAME1 = ADRC-NAME1.

SELECT * FROM QMSM

WHERE QMNUM = QMEL-QMNUM

AND MANUM IN S_MANUM.

ITAB-QMNUM = QMEL-QMNUM.

ITAB-FENUM = QMFE-FENUM.

ITAB-MANUM = QMSM-MANUM.

ITAB-QMART = QMEL-QMART.

ITAB-MAWERK = QMEL-MAWERK.

ITAB-IDNLF = QMEL-IDNLF.

ITAB-DEVICEID = QMEL-DEVICEID.

ITAB-LICHN = QMEL-LICHN.

ITAB-VBELN = QMEL-VBELN.

ITAB-ERNAM = QMEL-ERNAM.

ITAB-QMTXT = QMEL-QMTXT.

ITAB-QMCOD = QMEL-QMCOD.

ITAB-OTEIL = QMFE-OTEIL.

ITAB-FECOD = QMFE-FECOD.

ITAB-FETXT = QMFE-FETXT.

ITAB-MNCOD = QMSM-MNCOD.

ITAB-MATXT = QMSM-MATXT.

ITAB-PSTER = QMSM-PSTER.

ITAB-PETER = QMSM-PETER.

ITAB-INDTX1 = QMEL-INDTX.

ITAB-INDTX2 = QMFE-INDTX.

ITAB-INDTX3 = QMSM-INDTX.

ITAB-KURZTEXT1 = W_KURZTEXT1.

ITAB-KURZTEXT2 = W_KURZTEXT2.

ITAB-NAME1 = W_NAME1.

ITAB-PARNR = IHPA-PARNR.

ITAB-PARNR1 = QMSM-PARNR.

APPEND ITAB.

ENDSELECT.

ENDSELECT.

ENDSELECT.

Please help me on this. will be award for correct logic.

Thanks

2 REPLIES 2
Read only

Former Member
0 Likes
409

u can write inner join between qmel and qmfe tables based S_qmel

using for all entries u can the infomration from QMSM and the rest of the tables

Madhavi

Read only

Former Member
0 Likes
409

Also try to prevent using TABLES.

From OO-context seen, better use SELECT * FROM 'tablename' INTO TABLE.

Next, state which fields you would like to select from the database table, this will decrease the duration of your select statement.

e.g.:

SELECT qmnum fenum etc....

FROM qmel

INTO CORRESPONDING FIELDS OF TABLE ....

Also make sure that, if you use FOR ALL ENTRIES IN, to check if the table you are referring to has at least one entry.

This to prevent that you select the entire table!!

Good luck!