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

HOW DEFINE INNER JIONS FOR MULTIPLE TABLE-FIELDS

Former Member
0 Likes
552

HI I HAVE THE IMMEDIATE ISSUE TO RESOLVE...

data: begin of it_jtab occurs 0,

gsber like tgsb-gsber,

gjahr like coss-gjahr,

kostl like csks-kostl,

posid like prps-posid,

plfaz like proj-plfaz,

plsez like proj-plsez,

estat like tj30t-estat,

perbl like coss-perbl,

wkgbtr like coep-wkgbtr,

end of it_jtab.

HOW CAN I DO INNER JOIN FOR THE GIVEN TABLE??

AM CURENTLY ON 4.0 VERSION HENCE HELP ME KNOW TO WORK ON JOINS ONLY.........

3 REPLIES 3
Read only

Former Member
0 Likes
505

Inner joins using 3 tables

Try this :-


SELECT stpo~stlnr stpo~idnrk mast~matnr mara~mtart stpo~menge 
INTO CORRESPONDING FIELDS OF TABLE zmat1 FROM mast 
JOIN stpo ON stpo~stlnr = mast~stlnr 
JOIN mara ON mara~matnr = mast~matnr 
WHERE stpo~stlty = 'M' "AND stpo~idnrk IN s_matnr 
AND mast~werks = 1000. 

Here s_matnr is a select-options on the selection-screen.

Or this.


     Select single Vbrk~Bukrs Vbrk~Kunrg    Vbrk~Vbeln 
                   Vbrk~Fkdat Vbrk~Bstnk_Vf Vbrk~Zterm 
                   Tvzbt~Vtext 
                   Vbak~Vbeln Vbak~Bstdk 
                   Likp~Vbeln Likp~lfdat    Likp~Lfuhr 
       into w_vbrk 
       from vbrk 
      inner join       Tvzbt on Tvzbt~Zterm        = Vbrk~Zterm      and 
                                Tvzbt~Spras        = sy-langu 
      Inner join       Vbfa  as SalesLnk 
                             on SalesLnk~vbeln     = pu_vbeln        and 
                                SalesLnk~vbtyp_v   = c_order 
            inner join Vbak  on Vbak~Vbeln           = SalesLnk~Vbelv
      Inner join       Vbfa  as DeliveryLnk 
                             on DeliveryLnk~vbeln   = pu_vbeln       and 
                                DeliveryLnk~vbtyp_v = c_Delivery 
            inner join Likp  on Likp~Vbeln          = DeliveryLnk~Vbelv 
      where vbrk~vbeln = pu_Vbeln. 

This code locates sales, delivery and payment terms info from a billing document number.

or

Here, this one also works fine :


select zfpcd~cadivi zfpcd~proforma zfpcd~factura zfpcd~aniofactura 
zfpcd~montousd zfpcd~montoap zfpcd~ebeln zfpcd~inco1 
zfpcd~lifnr lfa1~name1 zcdvs~status zfpcd~conint 
into it_lista 
from zfpcd inner join zcdvs 
on zfpcd~ebeln = zcdvs~ebeln 
and zfpcd~proforma = zcdvs~proforma 
and zfpcd~lifnr = zcdvs~lifnr 
inner join lfa1 
on zfpcd~lifnr = lfa1~lifnr 
where zcdvs~status = '04'.  

Read only

Former Member
0 Likes
505

Hi,

U can join 3 tables max. Joining more than 3 tables may cause performance issues.

select aabc bdef c~ghi

into table itab

from a join b

on ajkl = bmno

join c

on apqr = cstu

where <condition>.

Make sure that u use index keys (primary keys) while joining two tables. Else u will get performance error.

Reward if helpful.

Regards,

Ramya

Read only

Former Member
0 Likes
505

Hi,

Check this prog,

Inner joins using 3 tables

Try this :-

SELECT stpostlnr stpoidnrk mastmatnr maramtart stpo~menge

INTO CORRESPONDING FIELDS OF TABLE zmat1 FROM mast

JOIN stpo ON stpostlnr = maststlnr

JOIN mara ON maramatnr = mastmatnr

WHERE stpostlty = 'M' "AND stpoidnrk IN s_matnr

AND mast~werks = 1000.

Here s_matnr is a select-options on the selection-screen.

Or this.

Code:

Select single VbrkBukrs VbrkKunrg Vbrk~Vbeln

VbrkFkdat VbrkBstnk_Vf Vbrk~Zterm

Tvzbt~Vtext

VbakVbeln VbakBstdk

LikpVbeln Likplfdat Likp~Lfuhr

into w_vbrk

from vbrk

inner join Tvzbt on TvzbtZterm = VbrkZterm and

Tvzbt~Spras = sy-langu

Inner join Vbfa as SalesLnk

on SalesLnk~vbeln = pu_vbeln and

SalesLnk~vbtyp_v = c_order

inner join Vbak on VbakVbeln = SalesLnkVbelv

Inner join Vbfa as DeliveryLnk

on DeliveryLnk~vbeln = pu_vbeln and

DeliveryLnk~vbtyp_v = c_Delivery

inner join Likp on LikpVbeln = DeliveryLnkVbelv

where vbrk~vbeln = pu_Vbeln.

This code locates sales, delivery and payment terms info from a billing document number.

or

Here, this one also works fine :

select zfpcdcadivi zfpcdproforma zfpcdfactura zfpcdaniofactura

zfpcdmontousd zfpcdmontoap zfpcdebeln zfpcdinco1

zfpcdlifnr lfa1name1 zcdvsstatus zfpcdconint

into it_lista

from zfpcd inner join zcdvs

on zfpcdebeln = zcdvsebeln

and zfpcdproforma = zcdvsproforma

and zfpcdlifnr = zcdvslifnr

inner join lfa1

on zfpcdlifnr = lfa1lifnr

where zcdvs~status = '04'.

Regards,

Arunsri