6-Select Statements Types
6-Select Statements Types
SELECT UP TO 1 ROWS
This is slow.
SELECT SINGLE * FROM MARA INTO WA_MARA WHERE MATNR = '0001'. " Read exact record
from MARA table
SELECT * FROM MARA INTO WA_MARA UP TO 1 ROWS WHERE MTART = 'FERT'. " Read
appropriate record from MARA table here MTART is not a keyfield
ENDSELECT.
SELECT * FROM MARA INTO WA_MARA UP TO 50 ROWS WHERE MTART = 'FERT'. " Read 50
appropriate records from MARA table here MTART is not a keyfield
ENDSELECT.
LOOP AT IT_MARA INTO WA_MARA.
write :/ wa_mara-matnr, wa_mara-mtart, wa_mara-meins. " Print data to screen
ENDLOOP.
SELECT T1~FIELD1
T1~FIELD2
T2~FIELD1
T2~FIELD2
INTO TABLE <ITAB>
FROM T1 INNER JOIN T2 ON ( T1~FIELD1 = T2~FIELD )
WHERE T1~FIELD = <SOME VALUE> .
** Here T1 and T2 are database tables, FIELD1 and FIELD2 are fields in respective
tables
END OF T_MARA.
TABLE OF T_MARA .
MAKT~MAKTX
MAKT~SPRAS
INTO
TABLE IT_MARA
Parent internal table must not be empty ( If it is empty, where condition fails and it will get
all records from database).
Remove all duplicate entries in parent internal table.
Here is the example of using SELECT FOR ALL ENTRIES in real-time applications
**DATA DECLERATIONS
DATA : IT_MARA TYPE TABLE OF MARA.
DATA : IT_MAKT TYPE TABLE OF MAKT .
**GET DATA FROM MARA TABLE
SELECT * FROM MARA INTO TABLE IT_MARA
WHERE MATNR = '0001'.
**SORT MARA TABLE, TO DELETE ADJACENT DUPLICATES THE TABLE MUST BE SORTED IN ASCEN
DING ORDER
SORT IT_MARA ASCENDING .
**DELETE ADJACENT DUPLICATES FROM IT_MARA COMPARING ALL FIELDS
**TO USE SELECT FOR ALL ENTRIES, THE PARENT INTERNAL TABLE MUST NOT BE EMPTY SO CH
ECK IT
IF IT_MARA IS NOT INITIAL. "CHECK PARENT INTERNAL TABLE
**SECOND SELECT STATEMENT TO GET DATA FROM MAKT (MATERIAL DESCRIPTIONS), HERE WE A
RE GETTING DATA
**FROM MAKT FOR ALL THE RECORDS IN IT_MARA, SEE WHERE CONDITION SHOULD BE PARENT I
NTERNAL TABLE
SELECT * FROM MAKT INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_MARA
WHERE MATNR = IT_MARA-MATNR.
ENDIF.
As per SAP standards select into corresponding statement is not advisable as it effects
the performance of an application because it has to compare each field with database.
"DISPLAY OUT