2006 Dec 28 12:31 PM
hi all
i've written following coding for despatch register.
while running it takes long time, can any one change bellow coding
SELECT SUM( lipsLFIMG ) vbakvbeln vbakkunnr vbakvkorg
vbakknumv lipsvbeln INTO
(del-lfimg, reg-vbeln, reg-kunnr, reg-vkorg,
reg-knumv, del-vbeln) FROM lips
INNER JOIN vbak ON lipsVGBEL eq vbakvbeln
inner join vbuk on lipsVBELN eq vbukvbeln
inner join LIKP on likpVBELN eq lipsVBELN
WHERE vbakVKORG in s_vkorg and vbakkunnr in skunnr and
likp~WADAT_IST in delvdate and
vbuk~WBSTK eq 'C' and
( vbakauart NE 'RE' AND vbakauart NE 'QT' ) AND
( lipsPSTYV EQ 'TAN' OR lipsPSTYV EQ 'TAC' OR
lipsPSTYV EQ 'TASS' ) GROUP BY vbakkunnr
vbakvbeln vbakvkorg vbakknumv lipsvbeln
ORDER BY vbak~kunnr.
......
......
.....
endselect.
2006 Dec 29 6:17 AM
tooo many tables in JOIN .
first break them into small Query.
2.what abt ur WHERE clause ?.
Regards
Prabhu
2006 Dec 29 6:23 AM
TRY TO USE ONLY TWO TABLES IN INNER JOIN.
IF YOU HAVE TO FETCH AS PER YOUR REQUIREMENT IN ONE SELECT CREATE A VIEW OF THOSE TABLES AND USE THE VIEW
REGARDS
SHIBA DUTTA
2006 Dec 29 6:23 AM
hi
dont use select-endselect statement.
instead of using into 'header line', use INTO CORRESPONDING FIELDS OF TABLE internal table, which would increase your performance.
thx
pavan
2006 Dec 29 6:29 AM
Hi,
Try to avoid more inner joins.Use for all entries instead of that.
Avoid using select endselect.Instead of the use into table in select statement.