2007 Feb 04 11:38 AM
I WANT TO COPY THE DATA FROM DATABASE TO THREE INTERNAL TABLE
AND THEN CONVERT INTO ONE INTERNAL TABLE?TELL ME PLZZ HOW IT IS POSSIBLE PLZZZZZ
You should write something like
TABLES: table1, table2, table3.
DATA: t_table1 type sorted table of table1 with key key1.
DATA: t_table2 type sorted table of table2 with key key1 key2.
DATA: t_table3 type sorted table of table3 with key key1 key2 key3.
Select * into table t_table1 from table1 <where your select-options>.
Select * into table t_table2 from table2 for all entries in t_table1 where key1 = t_table1-key1 <and where your select-options>.
Select * into table t_table3 from table3 for all entries in t_table2 where key1 = t_table2-key1 and key2 = t_table2-key2 <and where your select-options>.
loop at t_table1 into table1.
move-corresponding table1 to outtab.
loop At t-table2 into table2 where k1 = table1-key1.
move-corresponding table2 to outtab.
loop At t-table2 into table2 where k1 = table2-key1 and key2 = table2-key2.
move-corresponding table3 to outtab.
append outtab.
endloop.
endloop.
endloop.
Regards
2007 Feb 04 12:23 PM
hi,
not quite understand your question but to access database, use select to read to internal table. from internal table, you can use loop and read the other 2 internal table and modify it.
2007 Feb 04 12:43 PM
I WANT TO COPY THE DATA FROM DATABASE TO THREE INTERNAL TABLE
AND THEN CONVERT INTO ONE INTERNAL TABLE?TELL ME PLZZ HOW IT IS POSSIBLE PLZZZZZ
hi.
if u want to copy data from 3 different tables in data base u need not to u need not to drag them into 3 internal tabels. u can define one internal table. table fields from differnt tables.
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
werks LIKE mard-werks,
pstat LIKE mard-pstat,
ekgrp LIKE marc-ekgrp,
ausme LIKE marc-ausme,
END OF itab.
SELECT : mara~matnr
mara~ersda
mard~werks
mard~pstat
marc~ekgrp
marc~ausme
INTO TABLE itab UP TO 20 ROWS
FROM mara
INNER JOIN mard
ON maramatnr = mardmatnr
INNER JOIN marc
ON maramatnr = marcmatnr.
IF sy-subrc = 0.
LOOP AT itab.
WRITE :/1 itab-matnr,
20 itab-ersda,
40 itab-werks,
60 itab-pstat,
80 itab-ekgrp,
100 itab-ausme.
ENDLOOP.
ENDIF.
copy and past this program u can see the data from all the 3 data base tables.
2007 Feb 04 12:48 PM
You should write something like
TABLES: table1, table2, table3.
DATA: t_table1 type sorted table of table1 with key key1.
DATA: t_table2 type sorted table of table2 with key key1 key2.
DATA: t_table3 type sorted table of table3 with key key1 key2 key3.
Select * into table t_table1 from table1 <where your select-options>.
Select * into table t_table2 from table2 for all entries in t_table1 where key1 = t_table1-key1 <and where your select-options>.
Select * into table t_table3 from table3 for all entries in t_table2 where key1 = t_table2-key1 and key2 = t_table2-key2 <and where your select-options>.
loop at t_table1 into table1.
move-corresponding table1 to outtab.
loop At t-table2 into table2 where k1 = table1-key1.
move-corresponding table2 to outtab.
loop At t-table2 into table2 where k1 = table2-key1 and key2 = table2-key2.
move-corresponding table3 to outtab.
append outtab.
endloop.
endloop.
endloop.
Regards
2007 Feb 05 5:55 AM
Hi,
Create a main internal table1.filter data into this according to functional requirement.Then use this internal table1 & use join for all entries into internal table 2.similarly use internal table 3 & use join for all entries into internal table 3.
I have worked on something similar.U can have a look at the code.
SELECT ENSTEHDAT WERK PRUEFLOS LIFNR HERSTELLER FROM QALS INTO TABLE LIT_QALS
WHERE LIFNR IN S_LIFNR
AND HERSTELLER IN S_HERST.
SELECT VDATUM VCODE PRUEFLOS FROM QAVE INTO TABLE LIT_QAVE
FOR ALL ENTRIES IN LIT_QALS
WHERE PRUEFLOS = LIT_QALS-PRUEFLOS.
SELECT LIFNR NAME1 FROM LFA1 INTO TABLE LIT_LFA1
FOR ALL ENTRIES IN LIT_QALS
WHERE LIFNR = LIT_QALS-LIFNR.
2007 Feb 05 9:21 AM
Hi,
Code as follows.I did it in my program:
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' OR MNCOD ='0270'.
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.
Hope this helps.
Reward if helpful.
regards,
Sipra
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |