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

Populating Internal table

Former Member
0 Likes
905

Hi all,

i have to populate data from 5 internal tables into a final table.

Ex : select a b c from d into it1 where....

select x y z from a into it2 where...

.

.

select k j l from a into it5 where...

so how to move a b c , x y z , k j l into final table.

Thanks..

Zaf

1 ACCEPTED SOLUTION
Read only

aris_hidalgo
Contributor
0 Likes
872

Hi, 

Please see my example below so you can have an idea on how to move to another internal 
table. 

Hope it helps...

P.S. Please award points if it helps...

REPORT  z_aris_test_4
        NO STANDARD PAGE HEADING.

TYPES: BEGIN OF t_vbak,
        vbeln TYPE vbak-vbeln,
        erdat TYPE vbak-erdat,
       END OF t_vbak.

TYPES: BEGIN OF t_vbap,
        vbeln TYPE vbap-vbeln,
        posnr TYPE vbap-posnr,
       END OF t_vbap.

TYPES: BEGIN OF t_vbfa,
        vbelv TYPE vbfa-vbelv,
        posnv TYPE vbfa-posnv,
       END OF t_vbfa.

TYPES: BEGIN OF t_final,
        vbeln TYPE vbak-vbeln,
        posnr TYPE vbap-posnr,
        erdat TYPE vbak-erdat,
        vbelv TYPE vbfa-vbelv,
        posnv TYPE vbfa-posnv,
       END OF t_final.

DATA: gt_vbak  TYPE STANDARD TABLE OF t_vbak,
      gt_vbap  TYPE STANDARD TABLE OF t_vbap,
      gt_vbfa  TYPE STANDARD TABLE OF t_vbfa,
      gt_final TYPE STANDARD TABLE OF t_final.

DATA: wa_vbak  LIKE LINE OF gt_vbak,
      wa_vbap  LIKE LINE OF gt_vbap,
      wa_vbfa  LIKE LINE OF gt_vbfa,
      wa_final LIKE LINE OF gt_final.

SELECT vbeln erdat
FROM vbak
INTO TABLE gt_vbak.

IF NOT gt_vbak[] IS INITIAL.
  SELECT vbeln posnr
  FROM vbap
  INTO TABLE gt_vbap
  FOR ALL ENTRIES IN gt_vbak
  WHERE vbeln = gt_vbak-vbeln.
ENDIF.

IF NOT gt_vbak[] IS INITIAL.
  SELECT vbelv posnv
  FROM vbfa
  INTO TABLE gt_vbfa
  FOR ALL ENTRIES IN gt_vbak
  WHERE vbelv = gt_vbak-vbeln.
ENDIF.

SORT gt_vbak BY vbeln ASCENDING.
SORT gt_vbap ASCENDING BY vbeln posnr.
SORT gt_vbfa BY vbelv ASCENDING.

LOOP AT gt_vbap INTO wa_vbap.
  READ TABLE gt_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEARCH.
  IF sy-subrc = 0.
    READ TABLE gt_vbfa INTO wa_vbfa WITH KEY vbelv = wa_vbak-vbeln BINARY SEARCH.
  ENDIF.
  IF sy-subrc = 0.
    MOVE wa_vbap-vbeln TO wa_final-vbeln.
    MOVE wa_vbap-posnr TO wa_final-posnr.
    MOVE wa_vbak-erdat TO wa_final-erdat.
    MOVE wa_vbfa-vbelv TO wa_final-vbelv.
    MOVE wa_vbfa-posnv TO wa_final-posnv.
    APPEND wa_final TO gt_final.
    CLEAR: wa_vbak, wa_vbap, wa_vbfa.
  ENDIF.
ENDLOOP.

IF NOT gt_final[] IS INITIAL.
  SORT gt_final BY vbeln posnr.
  LOOP AT gt_final INTO wa_final.
    WRITE: / wa_final-vbeln,
             wa_final-posnr,
             wa_final-erdat,
             wa_final-vbelv,
             wa_final-posnv.
  ENDLOOP.
ENDIF.
9 REPLIES 9
Read only

Former Member
0 Likes
872

Hi Zafeer,

There should be some kind of a relationship between these 5 tables to be moved into a single table and I thing it would be difficuilt to get relationship between 5 diff tables. You would end up creating more int. tables.

It would be easier if u could give live example

Thnks

S S K

Message was edited by:

S S K

Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
872

Hi,

You need to find out one maintable which you can loop through.

So LOOP that table.

In the loop, READ from other tables and push the required fields on to a workarea of type Final table's line type.

Then after the last READ APPEND the workarea to Final table.

Regards,

Sesh

Read only

Former Member
0 Likes
872

all value move into single internal table after write.

Read only

Former Member
0 Likes
872

Here is a sample code which combines SPFLI and SFLIGHT into OUTTAB....SPFLI and SFLIGHT has CARRID, CONNID in common to establish the relation ship....

DATA: BEGIN OF fs_spfli,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

countryfr TYPE spfli-countryfr,

END OF fs_spfli.

DATA: BEGIN OF fs_sflight,

carrid TYPE sflight-carrid,

connid TYPE sflight-connid,

fldate TYPE sflight-fldate,

price TYPE sflight-price,

END OF fs_sflight.

DATA: BEGIN OF fs_outtab,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

countryfr TYPE spfli-countryfr,

fldate TYPE sflight-fldate,

price TYPE sflight-price,

END OF fs_outtab.

DATA: t_spfli LIKE STANDARD TABLE OF fs_spfli,

t_sflight LIKE STANDARD TABLE OF fs_sflight,

t_outtab LIKE STANDARD TABLE OF fs_outtab.

START-OF-SELECTION.

SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE t_spfli.

END-OF-SELECTION.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE t_sflight.

LOOP AT t_sflight INTO fs_sflight.

READ TABLE t_spfli INTO fs_spfli with key carrid = fs_sflight-carrid

.

IF sy-subrc EQ 0.

MOVE fs_spfli-carrid TO fs_outtab-carrid.

MOVE fs_spfli-connid TO fs_outtab-connid.

MOVE fs_spfli-countryfr TO fs_outtab-countryfr.

MOVE fs_sflight-fldate TO fs_outtab-fldate.

MOVE fs_sflight-price TO fs_outtab-price.

APPEND fs_outtab TO t_outtab.

ENDIF.

CLEAR fs_spfli.

CLEAR fs_sflight.

ENDLOOP.

Regards,

Pavan

Read only

Former Member
0 Likes
872

Hi Zafeer,

Check this code, i did this for two itab.

&----


*& Report ZAZUIJOIN *

*& *

&----


*& *

*& *

&----


REPORT ZAZUIJOIN .

TABLES: EKPO, EKKO.

DATA: BEGIN OF ITAB1 OCCURS 0,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

END OF ITAB1.

DATA: BEGIN OF ITAB2 OCCURS 0,

EBELN LIKE EKKO-EBELN,

LIFNR LIKE EKKO-LIFNR,

BUKRS LIKE EKKO-EBELN,

END OF ITAB2.

                          • FINAL OUTPUT ITAB *************

DATA: BEGIN OF ITAB3 OCCURS 0,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

LIFNR LIKE EKKO-LIFNR,

BUKRS LIKE EKKO-BUKRS,

END OF ITAB3.

SELECT-OPTIONS: S_EBELN FOR EKPO-EBELN.

********************USING NORMAL SELECT QUERY*******************

*SELECT ebeln ebelp matnr FROM ekpo INTO TABLE itab1

*WHERE ebeln IN s_ebeln.

*

*SELECT ebeln lifnr bukrs FROM ekko INTO TABLE itab2

*WHERE ebeln IN s_ebeln.

*************************************************************

*********************USING FOR ALL ENTRIES***********************

SELECT EBELN EBELP MATNR INTO TABLE ITAB1 FROM EKPO

WHERE EBELN IN S_EBELN.

IF NOT ITAB1[] IS INITIAL.

SELECT EBELN LIFNR BUKRS INTO TABLE ITAB2 FROM EKKO

FOR ALL ENTRIES IN ITAB1

WHERE EBELN = ITAB1-EBELN.

ENDIF.

**************************************************************

**************************USING INNER JOIN************************

*SELECT ekpoebeln ekpoebelp ekpo~matnr

  • ekkolifnr ekkobukrs INTO CORRESPONDING FIELDS OF TABLE itab3

  • FROM ekpo INNER JOIN ekko ON ekpoebeln = ekkoebeln

  • WHERE ekpo~ebeln IN s_ebeln.

***************************************************************

LOOP AT ITAB1.

READ TABLE ITAB2 WITH KEY

EBELN = ITAB1-EBELN.

ITAB3-EBELN = ITAB1-EBELN.

ITAB3-EBELP = ITAB1-EBELP.

ITAB3-MATNR = ITAB1-MATNR.

ITAB3-LIFNR = ITAB2-LIFNR.

ITAB3-BUKRS = ITAB2-BUKRS.

APPEND ITAB3.

ENDLOOP.

LOOP AT ITAB3.

WRITE : / SY-VLINE,

ITAB3-EBELN, SY-VLINE,

ITAB3-EBELP, SY-VLINE,

ITAB3-MATNR, SY-VLINE,

ITAB3-LIFNR, SY-VLINE,

ITAB3-BUKRS, SY-VLINE.

ENDLOOP.

<b>Regards,

Jackie.</b>

null

Read only

former_member189059
Active Contributor
0 Likes
872

Hello Zafeer,

Im guessing that your final table it_final will have all the required fields

if u want all the first records of the tables to go to the first record of it_final and all the second records to the second record to it_final etc, then use this code

loop at it_1.
 move-corresponding it_1 to it_final.
 read table it_2 index sy-tabix.
 move-corresponding it_2 to it_final.
 read table it_3 index sy-tabix.
 move-corresponding it_3 to it_final.
..
..
 append it_final.
endloop.

Read only

Former Member
0 Likes
872

Hi all,

Thanks for ur replies....

heres my question more clearly..

I have

TYPES : BEGIN OF ty_output,

ebeln TYPE ebeln, " PO number

mng02 TYPE mng06, " PO commitment amount

belnr TYPE belnr_d, " SAP document number (invoice)

menge_p TYPE menge_d, " Price per quantity at invoice level

bprme TYPE bbprm, " Price per quantity at PO level

menge_i TYPE menge_d, " Invoiced quantity

menge_d TYPE menge_d, " Delivered quantity

ktmng TYPE ktmng, " PO quantity

diff_qty_i TYPE menge_d, " Diff between invoiced quan & delivered quan

diff_qty_p TYPE menge_d, " Diff between delivered quan & PO Quant

END OF ty_output,

ty_output_t TYPE STANDARD TABLE OF ty_output,

*Table type to get values from RBKP

BEGIN OF ty_rbkp,

belnr TYPE re_belnr, " Document number of an invoice document

gjahr TYPE gjahr, " Fiscal Year

budat TYPE budat,

END OF ty_rbkp,

ty_rbkp_t TYPE STANDARD TABLE OF ty_rbkp,

*Table type to get values from RSEG

BEGIN OF ty_rseg,

belnr TYPE belnr_d, " Accounting Document Number

ebeln TYPE ebeln, " Purchasing Document Number

ebelp TYPE ebelp, " Item Number of Purchasing Document

menge TYPE menge_d, " Quantity

bprme TYPE bbprm, " Order price unit

gjahr TYPE gjahr,

END OF ty_rseg,

ty_rseg_t TYPE STANDARD TABLE OF ty_rseg,

*Table type to get values from EKPO

BEGIN OF ty_ekpo,

bprme TYPE bbprm, " Order Price Unit (Purchasing)

ktmng TYPE ktmng, " Target quantity

menge TYPE bstmg, " Purchase order quantity

ebeln TYPE ebeln, " Purchasing Document Number

END OF ty_ekpo,

ty_ekpo_t TYPE STANDARD TABLE OF ty_ekpo,

*Table type to get values from EKET

BEGIN OF ty_eket,

ebeln TYPE ebeln, " Purchasing Document Number

mng02 TYPE mng06, " Committed quantity

END OF ty_eket,

ty_eket_t TYPE STANDARD TABLE OF ty_eket,

*Table type to get values from EKBE

BEGIN OF ty_ekbe,

belnr TYPE mblnr, " Number of Material Document

menge TYPE menge_d, " Quantity

ebeln TYPE ebeln, " Purchasing Document Number

ebelp TYPE ebelp,

END OF ty_ekbe,

ty_ekbe_t TYPE STANDARD TABLE OF ty_ekbe,

*Table type to get values from MSEG

BEGIN OF ty_mseg,

menge TYPE menge_d, " Quantity

lsmng TYPE lsmng, " Quantity in unit of measure from delivery note

mblnr TYPE mblnr,

END OF ty_mseg,

ty_mseg_t TYPE STANDARD TABLE OF ty_mseg.

I have pulled out records from the tables from db tables...,

now how to populate to final table..

Thanks in adv..

Zaf

Read only

0 Likes
872

Hi,

Refer to my code as follows:

SELECT QMNUM

IWERK

EQUNR

BTPLN

AUSWK

INGRP

QMDAB

BEZDT

TPLNR

SWERK

MSGRP

FROM VIQMEL INTO TABLE ITABMEL

WHERE IWERK = 'M011' and

AUSWK = 'A' and

INGRP = 'SLM' and

QMDAB NE '00000000' and

BEZDT GE SDATE-LOW and BEZDT LE SDATE-HIGH and

SWERK IN S_WERK.

IF SY-SUBRC = 0.

SELECT QMNUM MNGRP MNCOD FROM QMMA

INTO CORRESPONDING FIELDS OF TABLE ITABMA

FOR ALL ENTRIES IN ITABMEL

WHERE QMNUM = ITABMEL-QMNUM and

MNGRP = 'RESTLT01' and

MNCOD = '0350'.

SORT ITABMA BY QMNUM.

LOOP AT ITABMEL.

READ TABLE ITABMA WITH KEY QMNUM = ITABMEL-QMNUM BINARY

SEARCH.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING ITABMA TO ITABMEL.

MODIFY ITABMEL TRANSPORTING QMNUM.

ENDIF.

ENDLOOP.

SELECT TPLNR PLTXT FROM IFLO

INTO CORRESPONDING FIELDS OF TABLE ITABLO

FOR ALL ENTRIES IN ITABMEL

WHERE TPLNR = ITABMEL-TPLNR.

SORT ITABLO BY TPLNR.

LOOP AT ITABMEL.

READ TABLE ITABLO WITH KEY TPLNR = ITABMEL-TPLNR BINARY

SEARCH.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING ITABLO TO ITABMEL.

MODIFY ITABMEL TRANSPORTING PLTXT.

ENDIF.

ENDLOOP.

SELECT QMNUM

URKAT

URGRP

URCOD FROM QMUR

INTO CORRESPONDING FIELDS OF TABLE ITABMUR

FOR ALL ENTRIES IN ITABMEL

WHERE QMNUM = ITABMEL-QMNUM.

SORT ITABMUR BY QMNUM.

LOOP AT ITABMEL.

READ TABLE ITABMUR WITH KEY QMNUM = ITABMEL-QMNUM

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING ITABMUR TO ITABMEL.

MODIFY ITABMEL TRANSPORTING URKAT URGRP URCOD.

ENDIF.

ENDLOOP.

SELECT KATALOGART

CODEGRUPPE

CODE

KURZTEXT FROM QPCT

INTO CORRESPONDING FIELDS OF TABLE ITABPCT

FOR ALL ENTRIES IN ITABMEL

WHERE KATALOGART = ITABMEL-URKAT and

CODEGRUPPE = ITABMEL-URGRP and

CODE = ITABMEL-URCOD.

SORT ITABPCT BY KATALOGART CODEGRUPPE CODE.

LOOP AT ITABMEL.

READ TABLE ITABPCT WITH KEY KATALOGART = ITABMEL-URKAT

CODEGRUPPE = ITABMEL-URGRP

CODE = ITABMEL-URCOD

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING ITABPCT TO ITABMEL.

MODIFY ITABMEL TRANSPORTING KURZTEXT.

ENDIF.

ENDLOOP.

SELECT OBJEK ATINN ATFLV FROM AUSP

INTO CORRESPONDING FIELDS OF TABLE ITABUSP

FOR ALL ENTRIES IN ITABMEL

WHERE OBJEK = ITABMEL-EQUNR and

ATINN = '0000000190'.

SORT ITABUSP BY OBJEK.

LOOP AT ITABMEL.

READ TABLE ITABUSP WITH KEY OBJEK = ITABMEL-EQUNR

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE ITABUSP-ATFLV TO ITABMEL-ATFLV1.

MODIFY ITABMEL TRANSPORTING ATFLV1.

ENDIF.

CLEAR ITABUSP.

ENDLOOP.

SELECT OBJEK ATINN ATWRT FROM AUSP

INTO CORRESPONDING FIELDS OF TABLE ITABWRT

FOR ALL ENTRIES IN ITABMEL

WHERE OBJEK = ITABMEL-EQUNR and

ATINN = '0000000191'.

SORT ITABWRT BY OBJEK.

LOOP AT ITABMEL.

READ TABLE ITABWRT WITH KEY OBJEK = ITABMEL-EQUNR

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE ITABWRT-ATWRT TO ITABMEL-ATWRT2.

MODIFY ITABMEL TRANSPORTING ATWRT2.

ENDIF.

CLEAR ITABWRT.

ENDLOOP.

SELECT OBJEK ATINN ATFLV FROM AUSP

INTO CORRESPONDING FIELDS OF TABLE ITABUSP

FOR ALL ENTRIES IN ITABMEL

WHERE OBJEK = ITABMEL-EQUNR and

ATINN = '0000000193'.

SORT ITABUSP BY OBJEK.

LOOP AT ITABMEL.

READ TABLE ITABUSP WITH KEY OBJEK = ITABMEL-EQUNR

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE ITABUSP-ATFLV TO ITABMEL-ATFLV3.

MODIFY ITABMEL TRANSPORTING ATFLV3.

ENDIF.

CLEAR ITABUSP.

ENDLOOP.

SELECT OBJEK ATINN ATWRT FROM AUSP

INTO CORRESPONDING FIELDS OF TABLE ITABWRT

FOR ALL ENTRIES IN ITABMEL

WHERE OBJEK = ITABMEL-EQUNR and

ATINN = '0000000194'.

SORT ITABWRT BY OBJEK.

LOOP AT ITABMEL.

READ TABLE ITABWRT WITH KEY OBJEK = ITABMEL-EQUNR

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE ITABWRT-ATWRT TO ITABMEL-ATWRT4.

MODIFY ITABMEL TRANSPORTING ATWRT4.

ENDIF.

CLEAR ITABWRT.

ENDLOOP.

hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

aris_hidalgo
Contributor
0 Likes
873

Hi, 

Please see my example below so you can have an idea on how to move to another internal 
table. 

Hope it helps...

P.S. Please award points if it helps...

REPORT  z_aris_test_4
        NO STANDARD PAGE HEADING.

TYPES: BEGIN OF t_vbak,
        vbeln TYPE vbak-vbeln,
        erdat TYPE vbak-erdat,
       END OF t_vbak.

TYPES: BEGIN OF t_vbap,
        vbeln TYPE vbap-vbeln,
        posnr TYPE vbap-posnr,
       END OF t_vbap.

TYPES: BEGIN OF t_vbfa,
        vbelv TYPE vbfa-vbelv,
        posnv TYPE vbfa-posnv,
       END OF t_vbfa.

TYPES: BEGIN OF t_final,
        vbeln TYPE vbak-vbeln,
        posnr TYPE vbap-posnr,
        erdat TYPE vbak-erdat,
        vbelv TYPE vbfa-vbelv,
        posnv TYPE vbfa-posnv,
       END OF t_final.

DATA: gt_vbak  TYPE STANDARD TABLE OF t_vbak,
      gt_vbap  TYPE STANDARD TABLE OF t_vbap,
      gt_vbfa  TYPE STANDARD TABLE OF t_vbfa,
      gt_final TYPE STANDARD TABLE OF t_final.

DATA: wa_vbak  LIKE LINE OF gt_vbak,
      wa_vbap  LIKE LINE OF gt_vbap,
      wa_vbfa  LIKE LINE OF gt_vbfa,
      wa_final LIKE LINE OF gt_final.

SELECT vbeln erdat
FROM vbak
INTO TABLE gt_vbak.

IF NOT gt_vbak[] IS INITIAL.
  SELECT vbeln posnr
  FROM vbap
  INTO TABLE gt_vbap
  FOR ALL ENTRIES IN gt_vbak
  WHERE vbeln = gt_vbak-vbeln.
ENDIF.

IF NOT gt_vbak[] IS INITIAL.
  SELECT vbelv posnv
  FROM vbfa
  INTO TABLE gt_vbfa
  FOR ALL ENTRIES IN gt_vbak
  WHERE vbelv = gt_vbak-vbeln.
ENDIF.

SORT gt_vbak BY vbeln ASCENDING.
SORT gt_vbap ASCENDING BY vbeln posnr.
SORT gt_vbfa BY vbelv ASCENDING.

LOOP AT gt_vbap INTO wa_vbap.
  READ TABLE gt_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEARCH.
  IF sy-subrc = 0.
    READ TABLE gt_vbfa INTO wa_vbfa WITH KEY vbelv = wa_vbak-vbeln BINARY SEARCH.
  ENDIF.
  IF sy-subrc = 0.
    MOVE wa_vbap-vbeln TO wa_final-vbeln.
    MOVE wa_vbap-posnr TO wa_final-posnr.
    MOVE wa_vbak-erdat TO wa_final-erdat.
    MOVE wa_vbfa-vbelv TO wa_final-vbelv.
    MOVE wa_vbfa-posnv TO wa_final-posnv.
    APPEND wa_final TO gt_final.
    CLEAR: wa_vbak, wa_vbap, wa_vbfa.
  ENDIF.
ENDLOOP.

IF NOT gt_final[] IS INITIAL.
  SORT gt_final BY vbeln posnr.
  LOOP AT gt_final INTO wa_final.
    WRITE: / wa_final-vbeln,
             wa_final-posnr,
             wa_final-erdat,
             wa_final-vbelv,
             wa_final-posnv.
  ENDLOOP.
ENDIF.