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 with Join Statement

Former Member
0 Likes
525

hay guys

I have written a query in ABAP OO to join 2 tables and have output in different table.Here i want only selected fields in 3 table .I dont know why this query is giving erroe.Help needed.



TYPES : BEGIN OF ty_catsubcat,
          CATEGORYID type ZNCYID,
          DESCRIPTION_CAT TYPE ZNCYID,
          SUBCATID type ZNSBCYID,
          DESCRIPTION_SUBCAT type ZNSBDS,
          END OF ty_catsubcat.



DATA :   IT_CATSUBCAT TYPE TABLE OF  ty_catsubcat.

  Select ZNCYMS~CATEGORYID ZNCYMS~DESCRIPTION ZNSBCYMS~SUBCATID ZNSBCYMS~DESCRIPTION
         INTO (IT_CATSUBCAT-CATEGORYID,
                  IT_CATSUBCAT-DESCRIPTION_CAT, 
                  IT_CATSUBCAT-SUBCATID, 
                  IT_CATSUBCAT-DESCRIPTION_SUBCAT)
         FROM ZNCYMS INNER JOIN ZNSBCYMS
         ON   ZNCYMS~CATEGORYID = ZNSBCYMS~CATEGORYID 
         order by ZNCYMS~CATEGORYID.
  endselect.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
506

Do not use select endselect and it could be performance issue

See the example program :

  • Structure

types : begin of ty_ekpo ,

ebeln type ekko-ebeln,

ebelp type ekpo-ebelp,

matnr type ekpo-matnr,

end of ty_ekpo.

  • Internal table

data i_ekpo type standard table of ty_ekpo.

  • work area

data wa_ekpo like line of i_ekpo.

start-of-selection.

select aebeln bebelp b~matnr into table i_ekpo

from ekko as a inner join ekpo as b on aebeln = bebeln.

loop at i_ekpo into wa_ekpo.

endloop.

4 REPLIES 4
Read only

Former Member
0 Likes
506

Don't you want your TYPES statement like this:

TYPES : BEGIN OF ty_catsubcat,
          CATEGORYID LIKE ZNCYMS-CATEGORYID,
          DESCRIPTION_CAT LIKE ZNCYMS-DESCRIPTION,
          SUBCATID LIKE ZNSBCYMS-SUBCATID,
          DESCRIPTION_SUBCAT LIKE ZNSBCYMS-DESCRIPTION,
          END OF ty_catsubcat.

Read only

Former Member
0 Likes
506

A few issues..

Your table it_catsubcat does not have a header line, and you are trying to insert into the header area of the table which does not exist. Either declare a work area/header, or do a table fetch instead.

Select ZNCYMSCATEGORYID ZNCYMSDESCRIPTION ZNSBCYMSSUBCATID ZNSBCYMSDESCRIPTION

<b> INTO CORRESPONDING FIELDS OF TABLE IT_CATSUBCAT</b>

FROM ZNCYMS INNER JOIN ZNSBCYMS

ON ZNCYMSCATEGORYID = ZNSBCYMSCATEGORYID

order by ZNCYMS~CATEGORYID.

If you use a work area to insert into, then you need to append the work area to your internal table.

data: IT_CATSUBCAT TYPE TABLE OF ty_catsubcat with header line.

Select ZNCYMSCATEGORYID ZNCYMSDESCRIPTION ZNSBCYMSSUBCATID ZNSBCYMSDESCRIPTION

INTO (IT_CATSUBCAT-CATEGORYID,

IT_CATSUBCAT-DESCRIPTION_CAT,

IT_CATSUBCAT-SUBCATID,

IT_CATSUBCAT-DESCRIPTION_SUBCAT)

FROM ZNCYMS INNER JOIN ZNSBCYMS

ON ZNCYMSCATEGORYID = ZNSBCYMSCATEGORYID

order by ZNCYMS~CATEGORYID.

append it_catsubcat.

endselect.

Read only

Former Member
0 Likes
506

Hello,

This is how the code should look like.

TYPES : BEGIN OF ty_catsubcat,
          CATEGORYID type ZNCYID,
          DESCRIPTION_CAT TYPE ZNCYID,
          SUBCATID type ZNSBCYID,
          DESCRIPTION_SUBCAT type ZNSBDS,
          END OF ty_catsubcat.
 
 
 
DATA :   IT_CATSUBCAT TYPE TABLE OF  ty_catsubcat <b>with header line</b>.
 
  Select ZNCYMS~CATEGORYID ZNCYMS~DESCRIPTION ZNSBCYMS~SUBCATID ZNSBCYMS~DESCRIPTION
         INTO (IT_CATSUBCAT-CATEGORYID,
                  IT_CATSUBCAT-DESCRIPTION_CAT, 
                  IT_CATSUBCAT-SUBCATID, 
                  IT_CATSUBCAT-DESCRIPTION_SUBCAT)
         FROM ZNCYMS INNER JOIN ZNSBCYMS
         ON   ZNCYMS~CATEGORYID = ZNSBCYMS~CATEGORYID 
         order by ZNCYMS~CATEGORYID.
 <b>append it_catsubcat.</b>
  endselect.

Rgds,

Naren

Read only

Former Member
0 Likes
507

Do not use select endselect and it could be performance issue

See the example program :

  • Structure

types : begin of ty_ekpo ,

ebeln type ekko-ebeln,

ebelp type ekpo-ebelp,

matnr type ekpo-matnr,

end of ty_ekpo.

  • Internal table

data i_ekpo type standard table of ty_ekpo.

  • work area

data wa_ekpo like line of i_ekpo.

start-of-selection.

select aebeln bebelp b~matnr into table i_ekpo

from ekko as a inner join ekpo as b on aebeln = bebeln.

loop at i_ekpo into wa_ekpo.

endloop.