10-16-2007 2:05 PM
Hi Experts,
I have a problem with below select query where it is excluding lower orders of collective order, where these orders are released but not confirmed.
I got a requirement where I have to show the lower orders along with header order (collective orders ) in report which are released but not confirmed.
Please help me ....... rewarded....
SELECT aauart awerks akdauf akdpos
bftrmi baufnr bstlbez baufpl
blead_aufnr bprodnet " crueck crmzhl
cvornr carbid clmnga cxmnga
crmnga cism04 cism05 cbudat
d~kunnr
e~arbpl
FROM aufk AS a
INNER JOIN afko AS b
ON baufnr EQ aaufnr
INNER JOIN afru AS c
ON caufnr EQ aaufnr
LEFT JOIN vbak AS d
ON dvbeln EQ akdauf
INNER JOIN crhd AS e
ON eobjid EQ carbid AND ewerks EQ awerks
INTO CORRESPONDING FIELDS OF TABLE i_data
WHERE a~auart IN s_auart
AND a~kdauf IN s_vbeln
AND a~werks EQ p_werks
AND b~aufnr IN s_aufnr
AND b~ftrmi IN s_ftrmi
AND c~stokz EQ ''
AND c~stzhl EQ '00000000'.
Regards,
Suresh goud
10-17-2007 5:27 AM
HI
use INNER JOIN not LEFT JOIN
and one more thing if you use this joins in ur report that will make a performance issue
if you use joins in ur program then the join for that tables will exist up to the program execution result in load on data base
so all ways better to use FOR ALL ENTRIES
reward if usefull
10-17-2007 6:23 AM
hi,
use dis code:-
SELECT aauart awerks akdauf akdpos
bftrmi baufnr bstlbez baufpl
blead_aufnr bprodnet " crueck crmzhl
cvornr carbid clmnga cxmnga
crmnga cism04 cism05 cbudat
d~kunnr
e~arbpl
FROM aufk AS a
INNER JOIN afko AS b
ON baufnr EQ aaufnr
INNER JOIN afru AS c
ON caufnr EQ aaufnr
INNER JOIN vbak AS d
ON dvbeln EQ akdauf
INNER JOIN crhd AS e
ON eobjid EQ carbid AND ewerks EQ awerks
INTO CORRESPONDING FIELDS OF TABLE i_data
WHERE a~auart IN s_auart
AND a~kdauf IN s_vbeln
AND a~werks EQ p_werks
AND b~aufnr IN s_aufnr
AND b~ftrmi IN s_ftrmi
AND c~stokz EQ ''
AND c~stzhl EQ '00000000'.
Dis will solve ur problem,if u find it useful,plzzz do rewards too.
regads,
ric.s
10-17-2007 6:42 AM
it is better to use into table ....itab.
dont go for joins if u r joining four tables .......
it is better to for all entries.
SELECT aauart awerks akdauf akdpos
bftrmi baufnr bstlbez baufpl
blead_aufnr bprodnet
FROM aufk AS a
INNER JOIN afko AS b
ON baufnr EQ aaufnr
INTO TABLE i_data1
WHERE a~auart IN s_auart
AND a~kdauf IN s_vbeln
AND a~werks EQ p_werks
AND b~aufnr IN s_aufnr
AND b~ftrmi IN s_ftrmi.
if i_data1[] is not initial .
if any sorting criteria is required based on primary keys write the sort statement here.
select crueck crmzhl
cvornr carbid clmnga cxmnga
crmnga cism04 cism05 cbudat
d~kunnr
e~arbpl
FROM afru AS c inner join vbak AS d
ON caufnr EQ aaufnr innerjoin crhd AS e
like this u need to do...........................
u have joined around five tables ...definetly that wont work
endif.
10-17-2007 7:00 AM
hi,
actually suguna is right if use 5 tables in inner joins den it will reduce its efficiency and i had by mistaken given u poor code. appologies for dat,
regrads,
ric.s