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

Problem in join statement

Former Member
0 Likes
557

Hi,

I have the following join cond on ekko, ekpo, ekkn tables.


  SELECT m~ebeln m~procstat m~rlwrt m~frgke m~bukrs
         c~ebelp c~txz01 c~knttp c~netwr
         c1~nplnr c1~kostl c1~anln1 c1~sakto c1~prctr c1~aufnr c1~imkey c1~ps_psp_pnr c1~zekkn

         FROM  ekko AS m INNER JOIN ekpo AS c ON
         c~ebeln = m~ebeln

         INNER JOIN ekkn AS c1 ON
         c1~ebeln = m~ebeln AND
         c1~ebelp = c~ebelp

         INTO CORRESPONDING FIELDS OF TABLE it_outtab

         WHERE m~bukrs IN s_bukrs AND
               m~bsart IN s_bsart AND
               m~aedat IN s_date AND
               m~lifnr IN s_lifnr AND
               m~ebeln IN s_ebeln AND
               c1~kostl IN s_kostl AND
               c1~ps_psp_pnr IN s_posid AND
               c1~nplnr IN s_aufnr AND
               c1~aufpl IN s_vornr.

Now my problem is whenever there are no enteries in ekpo or ekkn table i'ts not showing those PO's in the final output bcoz I have used inner join logic. But I want those PO'S also. How can i do that.

Thanks,

1 ACCEPTED SOLUTION
Read only

naimesh_patel
Active Contributor
0 Likes
525

Change your query like this:

  SELECT m~ebeln m~procstat m~rlwrt m~frgke m~bukrs
         c~ebelp c~txz01 c~knttp c~netwr
         c1~nplnr c1~kostl c1~anln1 c1~sakto c1~prctr c1~aufnr c1~imkey c1~ps_psp_pnr c1~zekkn
 
         FROM  ekko AS m LEFT OUTER JOIN ekpo AS c ON    " << LEFT OUTER
         c~ebeln = m~ebeln
 
         INNER JOIN ekkn AS c1 ON
         c1~ebeln = m~ebeln AND
         c1~ebelp = c~ebelp
 
         INTO CORRESPONDING FIELDS OF TABLE it_outtab
 
         WHERE m~bukrs IN s_bukrs AND
               m~bsart IN s_bsart AND
               m~aedat IN s_date AND
               m~lifnr IN s_lifnr AND
               m~ebeln IN s_ebeln AND
               c1~kostl IN s_kostl AND
               c1~ps_psp_pnr IN s_posid AND
               c1~nplnr IN s_aufnr AND
               c1~aufpl IN s_vornr.

Regards,

Naimesh Patel

4 REPLIES 4
Read only

Former Member
0 Likes
525

Hi,

Use OUTER JOIN.

Regards,

Satish

Read only

naimesh_patel
Active Contributor
0 Likes
527

Change your query like this:

  SELECT m~ebeln m~procstat m~rlwrt m~frgke m~bukrs
         c~ebelp c~txz01 c~knttp c~netwr
         c1~nplnr c1~kostl c1~anln1 c1~sakto c1~prctr c1~aufnr c1~imkey c1~ps_psp_pnr c1~zekkn
 
         FROM  ekko AS m LEFT OUTER JOIN ekpo AS c ON    " << LEFT OUTER
         c~ebeln = m~ebeln
 
         INNER JOIN ekkn AS c1 ON
         c1~ebeln = m~ebeln AND
         c1~ebelp = c~ebelp
 
         INTO CORRESPONDING FIELDS OF TABLE it_outtab
 
         WHERE m~bukrs IN s_bukrs AND
               m~bsart IN s_bsart AND
               m~aedat IN s_date AND
               m~lifnr IN s_lifnr AND
               m~ebeln IN s_ebeln AND
               c1~kostl IN s_kostl AND
               c1~ps_psp_pnr IN s_posid AND
               c1~nplnr IN s_aufnr AND
               c1~aufpl IN s_vornr.

Regards,

Naimesh Patel

Read only

0 Likes
525

Patel,

I have to change for ekkn also, coz same problem i'm facing with ekkn also. if there are no enteries in ekkn, i'm not getting bcoz of inner join.

So do i need to use outer join with ekkn also.

Pls suggest...

Read only

0 Likes
525

No need.. only LEFT OUTER in the first join will work.

Put a break point after the select statment and check in debug.

Regards,

Naimesh Patel