TABLES: pernr, pa0001.
DATA:BEGIN OF itab1 OCCURS 100,
pernr LIKE pernr-pernr, "
zztitl1 TYPE p0001-zztitl1, "
END OF itab1.
SELECT * INTO CORRESPONDING FIELDS OF itab1 FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
ENDSELECT.
이렇게 select 구문을 사용했는데 디버깅을 해보니깐 .. pa0001여기 값이 하나도 없는 것으로
나오는 데 ,, 왜 그런 건가요??
pa0001 여기에 있는 값을 가져오려면 어떻게 해야 되나요??
고수님들 부탁드립니다..
댓글 9
-
SD2
2008.06.12 18:59
-
피크민
2008.06.12 19:24
처음에 파라미터창에서 입력하신 사원번호 필드명을 where절에 넣어주셔야할듯합니다.
where pernr = p_pernr
or
where pernr in s_pernr등등으로요..
-
무한반복
2008.06.12 19:45
SELECT * into corresponding fields of itab1 from pa0001
WHERE pernr = PNPPERNR-LOW
AND endda = '99991231'.
ENDSELECT.
이렇게 바꿔 봤고 디버깅 했을 때,, pa0001 자체에 값이 없다는 것으로 나와요
SELECT * into corresponding fields of itab1 from pa0001.
ENDSELECT.
조건절을 다 빼고 했을 때도 pa0001 값이 하나도 없어서 itab1 로 값이 들어가질 못합니다.. ㅜㅜ
-
activeman
2008.06.12 19:55
DATA:BEGIN OF itab1 OCCURS 100,
pernr LIKE pernr-pernr, "
zztitl1 TYPE p0001-zztitl1, "
END OF itab1.
SELECT *
NTO CORRESPONDING FIELDS OF itab1 ==> head 에만 자료가 들어감
FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
ENDSELECT.
==> 위의 쿼리를 봤을 때 itab1의 body에 자료가 들어 가지 않습니다.
SELECT *
INTO CORRESPONDING FIELDS OF itab1
FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
append itab1. ==>추가 해줘야 함
ENDSELECT.
쿼리문의 select ~ endselect 는 쿼리 속도가 떨어 지므로...아래와 같이 하는것이 좋습니다..
SELECT *
INTO CORRESPONDING FIELDS OF table itab1 ==> body 에 자료가 들어감
FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
즐밥하세요.
-
무한반복
2008.06.12 20:19
대답해주셔서 감사해요,,,^^
그런데요,,
SELECT *
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
여기에서 pa0001 에 값은 있는 데 디버깅 했을 때 값이 없는 걸로 나오는 건 왜 그런건가요??
pa0001에 값이 왜 없는 걸로 나오는지 답변 부탁드릴께요~~
-
activeman
2008.06.12 20:43
조건에 맞는 답이 없는 것은 아닐까요?..디버깅 거실때 pernr에 들어오는 값으로 se11에서 데이터 조회를 해보세요
se11에서 pernr 값과 endda 값을 '99991231'로 해서 값이 나오면 쿼리가 이상한것일 거구요..
값이 나오지 않는다면 쿼리가 정상이겠지요..그리고 원하는 값이 나오도록 쿼리를 수정해야 겠지요..
즐밥하세요..
-
모모
2008.06.12 20:45
HR 업무를 담당하신다고하니, 아래 URL을 참고 하십시오.
(1)http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/frameset.htm
(2)http://help.sap.com/saphelp_47x200/helpdata/en/60/d8bad2576311d189270000e8322f96/frameset.htm
참고로, HR의 경우 pa0001등에 직접 SQL을 사용하기 보다는
LDB 'PNP'를 이용해서 주로 프로그래밍을 하며, HR macro를 사용합니다.(이와 관련해서,(1) (2)를 참고해보십시오.)
-
무한반복
2008.06.12 21:52
네~ 매크로를 사용해서 해결됐어요~ 감사드립니다.. ^^
근데 이거 완료표시를 어떻게 하는 건가요?? -
비리비리
2008.06.13 06:24
머 참고적인 내용인데요...
TABLES: pernr, pa0001.
이선언하시면 pa0001테이블하고 구조가 같은 structure가 생깁니다...
SELECT * INTO CORRESPONDING FIELDS OF itab1 FROM pa0001
WHERE pernr = pernr
AND endda = '99991231'.
ENDSELECT.
여기서 pa0001은 테이블명이기 때문에 암만 돌리셔도 table로 선언한 pa0001이름을 가지고 있는
structure에는 값이 아무것도 안들어가서 디버깅 하셔도 아무 값이 안나오게 됩니다..
그리고 요새는 PNP보다는 PNPCE를 보통 사용하구요 HR 매크로(TRMAC 테이블에 있는 매크로)도
PNPCE에 있는 매크로로 대체되었습니다..
아마도 WHERE pernr = pernr 여기서 에러인듯..
WHERE pernr = itab1-pernr로 바꿔서 해 보세요