2009 May 05 7:32 AM
Hi,
Is there any way to select rows from a table by specifying the starting position.
Like:
Select *
up to 10 rows
into table it_vbap
From vbap.
This will selet first 10 rows. Is there any way to select rows from 20 to 30??
Thanks,
Sreekanth
2009 May 05 8:05 AM
Hi,
Though it's not possible to get in single Select statement, but you can do it with simple logic:
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
END OF ITAB.
DATA: VAL TYPE STRING,
N TYPE I.
SELECT VBELN FROM VBAK INTO TABLE ITAB UP TO 100 ROWS.
LOOP AT ITAB. " First 100 records selected
WRITE:/ ITAB-VBELN.
ENDLOOP.
DESCRIBE TABLE ITAB LINES N.
LOOP AT ITAB.
IF SY-TFILL = N.
VAL = ITAB-VBELN.
ENDIF.
ENDLOOP.
CLEAR ITAB.
*WRITE:/ VAL.
SELECT VBELN FROM VBAK INTO TABLE ITAB UP TO 100 ROWS
WHERE VBELN GT VAL.
" Next 100 records selected
LOOP AT ITAB.
WRITE:/ ITAB-VBELN.
ENDLOOP.
Hi,
Is there any way to select rows from a table by specifying the starting position.
Like:
Select *
up to 10 rows
into table it_vbap
From vbap.
This will selet first 10 rows. Is there any way to select rows from 20 to 30??
Thanks,
Sreekanth
2009 May 05 7:34 AM
2009 May 05 7:38 AM
Hi..
No its not possible . but you can use some other key field from db table to retrive data or select all top 30 records and then delete first 10 records using sy-index .
regards,
Chintan.
2009 May 05 7:49 AM
Hi Sreekanth,
inorder to meet ur reqmnt you have to select all the records based on the selection criterion loop in internal table delete the last 20 by index
thanks and regards
srikanth.p
2009 May 05 8:05 AM
Hi,
Though it's not possible to get in single Select statement, but you can do it with simple logic:
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
END OF ITAB.
DATA: VAL TYPE STRING,
N TYPE I.
SELECT VBELN FROM VBAK INTO TABLE ITAB UP TO 100 ROWS.
LOOP AT ITAB. " First 100 records selected
WRITE:/ ITAB-VBELN.
ENDLOOP.
DESCRIBE TABLE ITAB LINES N.
LOOP AT ITAB.
IF SY-TFILL = N.
VAL = ITAB-VBELN.
ENDIF.
ENDLOOP.
CLEAR ITAB.
*WRITE:/ VAL.
SELECT VBELN FROM VBAK INTO TABLE ITAB UP TO 100 ROWS
WHERE VBELN GT VAL.
" Next 100 records selected
LOOP AT ITAB.
WRITE:/ ITAB-VBELN.
ENDLOOP.