data: name_tab type table of sbook-bookid,
name like line of name_tab.
SELECT b~bookid
into corresponding fields of table name_tab
FROM sbook as b
inner join sflight as f on b~carrid = f~carrid.
loop at name_tab into name.
write: / name.
endloop.
위의 프로그램 실행시..
name_tab is not structured...라는 오류 메세지가 나오네여...오류를 잡을려고 해도 잘안되는군요..
아래의 서브쿼리구문을 이용하면 결과값이 위의 프로그램에서 기대하던 결과값이 잘나오는데..원인을 잘모르겠어요...
DATA: name_tab TYPE TABLE OF sbook-bookid,
name LIKE LINE OF name_tab.
SELECT bookid
INTO TABLE name_tab
FROM sbook
WHERE EXISTS ( select *
FROM sflight
WHERE carrid = sbook~carrid ).
LOOP AT name_tab INTO name.
WRITE: / name.
ENDLOOP.
댓글 9
-
숟가락맨
2007.12.01 01:36
-
e-abap
2007.12.01 01:37
위의 구문에서 인터널 테이블이 필드가 하나 뿐이네요.
다음 구문으로 변경해야 합니다.
into table name_tab 으로 변경해야 합니다.
into correspoinding~ 을 쓸려면 두개 이상의 구조로 이루어진 인터널 테이블에서만 가능합니다. -
숟가락맨
2007.12.01 01:37
아...위에 데이타 선언해줬었군요...필드명이 틀려서 오류나는거에요... -
진짜미쵸
2007.12.01 01:43
Select b~bookid를 Select b~bookid As bookid 로하여 Internal Table 에 저장하려고 하는 칼럼 이름과 동일하게 해야
에러가 없을겁니다.
-
지의
2007.12.01 02:37
쿼리 부분이 잘못 됬겠네요.
위 쿼리하고 아래 쿼리는 전혀 틀린 개념이죠.. 인터널 테이블 선언 자체를 잘 못 하신 경우입니다.
into corresponding fields of table name_tab => INTO TABLE name_tab
위에 쿼리에 이 부분을 => 이 부분으로 고쳐서 해보세요.
into corresponding fields of 를 사용하실 때는 인터널 테이블을 저런식으로 선언하시면 안됩니다.
-
지의
2007.12.01 02:38
그리고 퇴근 하는 마당에 하나 더.. 위의 쿼리와 아래의 쿼리는 데이타도 틀릴겁니다.
왜 같은 쿼리가 아니니깐요.. 내용이 전혀 틀리네요.
-
order001
2007.12.01 02:38
위의 두 프로그램의 결과과 좀 다르게 나오는데요?
결과가 똑같이 나오지 않나요??
-
지의
2007.12.01 02:44
제가 답글 달았듯이.. 전혀 개념이 틀린 두개의 서로 다른 쿼리입니다.
왜 다르게 나오는지는 분석해보세요.
-
order001
2007.12.03 20:30
답변감사드립니다.
name_tab 에 bookid라는 필드가 있나요? 위에거는...
into corresponding fields of table name_tab << 이부분이 같은 필드에 덮어쒸우는건데 같은 필드가 없어서 오류가 나는거고..
밑에서브쿼리는...
INTO TABLE name_tab << 이부분은 그냥 무작정 순서대로 집어넣는거라 같은 이름의 필드가 없어도 들어가는 거 같군요..