‎2008 Mar 08 7:41 PM
Hi all,
I wrote logic like this.But it getting performance problem.
How to write this query using for all entries.Please give me the solution.
urgent.
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.
regards,
rakesh.
‎2008 Mar 08 10:55 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...