data: begin of wa,
carrid type spfli-carrid,
connid type spfli-connid,
fldate type sflight-fldate,
bookid type sbook-bookid,
end of wa,
itab like sorted table of wa
with unique key carrid connid fldate bookid.
select p~carrid p~connid f~fldate b~bookid
from ( ( spfli as p
inner join sflight as f on p~carrid = f~carrid and
p~connid = f~connid )
inner join sbook as b on b~carrid = f~carrid and
b~connid = f~connid and
b~fldate = f~fldate )
into corresponding fields of table itab
where p~cityfrom = 'FRANKFURT' and
p~cityto = 'NEW YORK' and
f~seatsmax > f~seatsocc.
loop at itab into wa.
at new fldate.
write: / wa-carrid, wa-connid, wa-fldate.
endat.
write / wa-bookid.
endloop.
현재 inner join 관련구문을 공부하고 있는데요..궁금한점 몇가지 질문드립니다. spfli라는 테이블을 가지고 sflight와
sbook을 inner join하는데요.. 아래 루프문에서 at new fldate 라는 구문의 의미를 잘모르겠어요..
글구 data 선언부에서 sorted table에서의 키를 설정할때 unique와 non-unitque로 설정할때의 차이점을 알려주세요..
댓글 4
-
hongman
2007.11.24 00:34
-
order001
2007.11.24 01:16
답변 감사드립니다.
한가지만 더 질문드립니다.
키값 중복을 허용한다는 말이 무슨 뜻인가요?
-
hongman
2007.11.24 01:53
키값이 carrid connid fldate bookid 네 필드인데.
네 필드값이 동일한 값을 허용한다는 의미인데요.
원문입니다.
You use UNIQUE and NON-UNIQUE to specify whether the table key is unique or not. For a table key specified with UNIQUE, a row with a certain key field content can only occur once in an internal table of this type. You can only use NON-UNIQUE for standard tables, you have to use UNIQUE for hashed tables, and both for sorted tables.
-
order001
2007.11.24 02:32
네 감사합니다.^^
at new fldate.
write: / wa-carrid, wa-connid, wa-fldate.
endat.
이 구문에서 write: / wa-carrid, wa-connid, wa-fldate. 은 fldate 값이 변경될때마다 실행됩니다.
unique - 키값의 중복을 허용안함.
non-unitque - 키값의 중복을 허용함.