‎2008 Mar 08 4:42 PM
Hi all,
I wrote logic like this.But it getting performance problem.
Can anybody tell me how to avoid this.
SELECT * INTO TABLE wknvv
FROM knvv
WHERE vkorg IN sales_or
AND vtweg IN dist_cha
AND spart IN div
AND vkbur IN sales_of .
LOOP AT wknvv .
SELECT vbeln auart zzmax_cpi INTO (wlist-vbeln,wlist-auart,max)
FROM vbak
WHERE
vbtyp = 'G'
AND kunnr = wknvv-kunnr
AND auart IN contr_ty.
max1 = max.
IF sy-subrc = 0 AND max1 IS NOT INITIAL .
SELECT * INTO wvbap FROM vbap
WHERE vbeln = wlist-vbeln
AND abgru = ''.
IF sy-subrc = 0.
SELECT SINGLE * FROM veda INTO wveda
WHERE vbeln = wlist-vbeln
AND vposn = wvbap-posnr
AND vkuegru = ''
AND venddat IN dates .
IF sy-subrc = 0.
MOVE-CORRESPONDING wvbap TO wlist .
MOVE-CORRESPONDING wveda TO wlist .
MOVE-CORRESPONDING wknvv TO wlist .
APPEND wlist.
ENDIF .
ENDIF.
ENDSELECT.
CLEAR wlist.
ENDIF.
ENDSELECT .
ENDLOOP.
please give me solution immediatly.
I will give full points.
regards,
rakesh.
‎2008 Mar 08 5:25 PM
Can you please tell me why you are using so many select statements within a loop when you can have so may statements like READ TABLE , FOR ALL ENTRIES or JOIN STATEMENTS.
Shall i write then for you?
‎2008 Mar 08 5:35 PM
hi ashish ,
please write the solution.
I will give the full points.
‎2008 Mar 08 11:07 PM
Hi Rakesh,
rite now i m not on the system but
you can write the query like this.
SELECT * INTO TABLE wknvv
FROM knvv
WHERE vkorg IN sales_or
AND vtweg IN dist_cha
AND spart IN div
AND vkbur IN sales_of .
then do the for all entries of WKNW
CREATE a table type with 3 fields for WLIST
SELECT vbeln auart zzmax_cpi
INTO TABLE wlist
FOR ALL ENTRIES IN wknw
FROM vbak
WHERE
vbtyp = 'G'
AND kunnr = wknvv-kunnr
AND auart IN contr_ty.
delete wlist where zzmax_cpi = 0.
SELECT * INTO TABLE wvbap
FROM vbap
FOR ALL ENTRIES OF wlist
WHERE vbeln = wlist-vbeln
AND abgru = ''.
IF sy-subrc = 0.
SELECT SINGLE *
FROM veda
INTO TABLE wveda
FOR ALL ENTRIES OF wlist
WHERE vbeln = wlist-vbeln
AND vposn = wvbap-posnr
AND vkuegru = ''
AND venddat IN dates .
here you have to create two more Internal tables WVEDA and WLIST
Hope this is useful to u...