-----------------------------------------------------------------------------------------------------------
제가 지금 구현하려는 것은
분류별 순번을 부여하는 것입니다.
ZBOOK이라는 TABLE에
TYPE과 NUM, 그리고 ID라는 필드가 있습니다.(나머지 도서정보 관련된 필드들도 존재함.)
위에 보이는 화면을 통해서 데이터를 입력하고 확인 버튼을 누르면
입력된 TYPE과 DB에 있는 TYPE를 비교하면서 NUM의 맥스값을 가져오게 합니다.
이렇게 가져온 NUM의 맥스값에 1을 증가 시켜서 NUM필드에 넣어줍니다.
그리고나서 ID에 TYPE과 NUM을 합쳐서 집어넣으려고 합니다.
예를 들면 TYPE이 A 이고 NUM이 003 이라면 A003이라는 값이 ID에 들어가는 것입니다.
밑에는 제가 코딩한 소스인데
문제점이 있습니다.
첫번째,
SELECT를 통해 NUM의 맥스 값을 가져와야 하는데 가져오지를 못하고 있습니다.
어떤 부분이 잘못된건지 잘 모르겠습니다.
두번째,
위에서 말씀드린데로 TYPE과 NUM을 합쳐서 ID값을 주려고 하는데
어떻게 합쳐야 되는지 모르겠습니다.
답변 부탁 드려요~ㅜㅜ
소스코드
-----------------------------------------------------------------------------------------------
*--TYPE에 대한 순번 맥스값 가져오기
SELECT TYPE MAX( NUM )
FROM ZBOOK
INTO WA_ZBOOK
WHERE TYPE = WA_ZBOOK-TYPE
GROUP BY TYPE.
ENDSELECT.
*--순번 증가 시키기
NUM = WA_ZBOOK-NUM + 1. "NUM은 증가값을 받기 위해 변수를 선언한 것입니다.
*--순번 자동 입력.
WA_ZBOOK-NUM = NUM.
*--NUM 과 TYPE 을 ID에 넣기.
WA_ZBOOK-ID = TYPE + NUM. "이렇게 해보니 오류가 떠버리네요..ㅜㅜ
*--등록일, 등록자 초기화
CLEAR WA_ZBOOK-WDAY.
CLEAR WA_ZBOOK-WMAN.
*--등록일, 등록자 값 입력
WA_ZBOOK-WDAY = SY-DATUM.
WA_ZBOOK-WMAN = SY-UNAME.
*--파본상태, 대여상태 입력
WA_ZBOOK-STATE1 = 'X'.
WA_ZBOOK-STATE2 = 'O'.
*--IT_ZCUS에 데이터 받기.
INSERT WA_ZBOOK INTO TABLE IT_ZBOOK.
*--DATA 저장.
MOVE-CORRESPONDING WA_ZBOOK TO ZBOOK.
INSERT INTO ZBOOK VALUES ZBOOK.
댓글 4
-
Gerrard
2008.12.18 02:49
CONCATENATE wa_zbookid-type wa_zbook-num into wa_zbook-id. -
튀밥
2008.12.18 22:09
Gerrard님의 답변으로 해결할 수 있었습니다. 감사합니다.^^
-
가을바람
2009.01.05 23:02
*--TYPE에 대한 순번 맥스값 가져오기
SELECT TYPE MAX( NUM )
FROM ZBOOK
INTO WA_ZBOOK
WHERE TYPE = WA_ZBOOK-TYPE
GROUP BY TYPE.
ENDSELECT.
MAX값 들고오는데 single 로 쿼리하면 되지않나요?
-
튀밥
2009.01.07 22:19
가을바람님 말씀대로 SINGLE로 처리 하였습니다^^