SELECT kunnr AS kunag
name1
FROM kna1
INTO CORRESPONDING FIELDS OF TABLE gt_data
FOR ALL ENTRIES IN tbl_sales1
WHERE kunnr = tbl_sales1-kunag.
위에 문구에서의 AS 작용에 대해 이해가 안됩니다.
kna1-kunnr 과 vbrk-kunag 모도 char 10자리여서 이렇게 쓸수 있는겁니까?
이해가 잘 안됩니다..
답변 부탁해요 ^^
댓글 6
-
정군
2009.05.14 20:57
-
빠코
2009.05.14 22:36
타입은 같은걸로 선언해주셔야 됩니다.
길이는 다르면 뒷자리가 잘려서 SELECT 되겠지만,
타입이 다를경우에는 덤프 나요...
-
정군
2009.05.14 23:07
오해가 있을 듯 해서, 빠코님 말씀에 조금 덧붙이면...
gt_data-kunag와 kna1-kunnr은 타입이 같은게 좋겠지만
vbrk-kunag랑 kna1-kunnr은 전혀 상관 없습니다.
-
꼬꼬마정수기
2009.05.15 00:44
alias이구요 데이타 가져올때 kna1-kunnr의 별명을 kunag 이라고 하겠다 이죠. 그래서 move-corresponding을 쓰셨기때문에 gt_data 의 kunag 필드에 가져온 kna1-kunnr 필드의 값을 넣어주겠다는 뜻입니다. -
덩콘
2009.05.21 20:37
간단하게 이야기하자면
A 와 B 테이블을 합쳐야하는데 둘다 kunnr 이라는 이름이 있다면?
어느 한쪽은 겹쳐 버리겠죠
그럼 그상황을 위해서 미리 인터널 테이블에서 필드의 이름을 다르게 선언합니다
a-kunnr b-kunag - 둘다 kunnr 속성을 가지죠
그럼 a는 그대로 쓰면되고 b에서 쓸때는 질문과 같이 as kunag를 이용하면
kna1-kunnr이라는 필드가 gt_data-kunag 필드로 들어갑니다
-
Will
2009.07.16 21:46
배웠습니다~떙큐~
alias 입니다. 그냥 이름만 다르게 쓰는 겁니다.(kunnr을 kunag로 나타나게 한다는..)
kunag에 대한 데이터 선언은 없습니다.(vbrk-kunag의 데이터 타입과 상관 없다는 뜻입니다.)
다만, 위의 소스로 볼 때 gt_data에 kunnr로 선언이 안되고 kunag로 선언이 되어 있어서
move-corresponding 할 때 제대로 값이 들어가도록 하기 위해서 쓴 것으로 판단됩니다.