基礎的讀取數據表例子
4.7.1基礎的讀取數據表例子---------------------------------------------------------------------*
"定議工作區
data a_spfli TYPE spfli.
"定義內表,請注意Header Line
DATA ta_spfli TYPE TABLE OF spfli WITH HEADER LINE.
ULINE.
WRITE / '使用工作區'.
ULINE.
"將數據表逐行轉移至工作區,只讀首5行
SELECT * INTO CORRESPONDING FIELDS OF a_spfli FROM spfli UP TO 5 ROWS. "Select * into corresponding fields of..........endselect
WRITE: / a_spfli-connid,a_spfli-carrid,a_spfli-cityfrom,a_spfli-cityto.
ENDSELECT.
ULINE.
WRITE / '使用內表'.
ULINE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ta_spfli FROM spfli UP TO 5 ROWS. "select * into corresponding fields of table................
"從數據表讀數據至內表,直接從內表輸出
"如果TA_SPFLI沒有定義Hearder Line,會出錯
LOOP AT ta_spfli.
WRITE: / ta_spfli-connid,ta_spfli-carrid,ta_spfli-cityfrom,ta_spfli-cityto.
" WRITE: / a_spfli-connid,a_spfli-carrid,a_spfli-cityfrom,a_spfli-cityto.
ENDLOOP.
ULINE.
WRITE / '將內表數據轉移至工作區'.
ULINE.
LOOP AT ta_spfli INTO a_spfli.
WRITE: / a_spfli-connid,a_spfli-carrid,a_spfli-cityfrom,a_spfli-cityto.
ENDLOOP.
使用PACKAGE SIZE
*4.7.2使用PACKAGE SIZE---------------------------------------------------------------------*
"定義內表Header Line
DATA wa_spfli type table of spfli with header line.
"以每次讀取5條記錄,直到讀取所有數據
select * into table wa_spfli from spfli package size 5 . "select * into table ..from ... package size. .....endselect.
loop at wa_spfli.
write: / wa_spfli-carrid,wa_spfli-cityfrom,wa_spfli-cityto.
endloop.
"輸出5條后輸出一條橫線
uline.
endselect.
內連接和外連接
*4.7.3內連接和外連接---------------------------------------------------------------------*
"定義結構
data:begin of arcd,
carrid type spfli-carrid,
connid type spfli-connid,
fldate type sflight-fldate,
end of arcd.
"工作區
data arcd1 like arcd.
" 工作區與結構的區別
"關聯數據表,讀取前10條記錄,寫入工結構,并輸出
select spfli~carrid spfli~connid sflight~fldate into arcd from spfli inner join sflight on spfli~carrid = sflight~carrid and spfli~connid = sflight~connid up to 10 rows.
write: / arcd-carrid,arcd-connid,arcd-fldate.
endselect.
"關聯數據表,讀取前10條記錄,寫入工作區,并輸出
select spfli~carrid spfli~connid sflight~fldate into arcd1 from spfli inner join sflight on spfli~carrid = sflight~carrid and spfli~connid = sflight~connid up to 10 rows.
write: / arcd1-carrid,arcd1-connid,arcd1-fldate.
endselect.