그림처럼 나오도록 코딩을 하였으나 속도가 너무 느립니다. 40분이상 걸리네요.
프로그램 실행시 가져오는 값은 구매요청번호 뿐입니다.
도와주세요.
**********************직전입고일추가*************************
SELECT BUDAT EBELN EBELP
FROM EKBE
INTO CORRESPONDING FIELDS OF IT_EBAN
UP TO 1 ROWS
WHERE EKBE~MATNR EQ IT_EBAN-MATNR
AND VGABE EQ '1'
AND SHKZG EQ 'S'
ORDER BY BUDAT DESCENDING.
ENDSELECT.
**************************************************************
***********************직전입고업체추가*************************
SELECT SINGLE NAME1
FROM EKKO AS A INNER JOIN LFA1 AS B
ON A~LIFNR = B~LIFNR
INTO CORRESPONDING FIELDS OF IT_EBAN
WHERE A~EBELN EQ IT_EBAN-EBELN.
***************************************************************
**********현재고**********************************************
CLEAR: P_LABST.
SELECT SUM( UMLMC ) INTO P_LABST
FROM MARC
WHERE MATNR = IT_EBAN-MATNR.
CLEAR: L_LABST, L_INSME.
SELECT SUM( LABST ) SUM( INSME )
INTO (L_LABST, L_INSME)
FROM MARD
WHERE MATNR = IT_EBAN-MATNR.
P_LABST = P_LABST + L_LABST + L_INSME.
IT_EBAN-LABST = P_LABST.
*****************************************************************
****************금년누적량***************************************
CLEAR: P_POSUM1.
SELECT SUM( MENGE ) INTO P_POSUM1
FROM EKBE
WHERE MATNR = IT_EBAN-MATNR
AND GJAHR = 2007.
IT_EBAN-POSUM1 = P_POSUM1. "금년누적을 이렇게 밖에 할수가 없어서...
실력의 한계가.. 현연도표현을 이렇게 하면 매년바꿔줘야
해서 다르게 하는 방법도 있으시면 가르처 주세요
*****************************************************************
****************작년누적량***************************************
CLEAR: L_POSUM1.
SELECT SUM( MENGE ) INTO L_POSUM1
FROM EKBE
WHERE MATNR = IT_EBAN-MATNR
AND GJAHR = 2006.
IT_EBAN-POSUM2 = L_POSUM1. "작년누적을 표현이 이렇게 밖에 할 수가 없어서...
실력의 한계가.. 작년연도 표현을 이렇게 하면 매년 바꿔줘야
해서 다르게 하는 방법이 있으시면 가르처 주세요.
*****************************************************************
댓글 8
-
e-abap
2007.11.17 00:43
5개의 select 중에서 몇번째께 가장 많이 걸리나요? -
지의
2007.11.17 01:39
금년 누적량과 작년 누적량이 가장 오래 걸리겠군요... -
mm_dsshin
2007.11.18 20:31
답변이 늦었습니다.
금년 누적량과 작년 누적량이 가장 오래 걸립니다.
-
디카촐
2007.11.19 19:53
EKBE 에 MATNR + GJAHR 로 시작하는 INDEX 가 있는지 확인하시고 없으면 INDEX 생성 후 한번 확인해 보셔요.
그리고 EKBE 의 'S'(+) 와 'H'(-) 를 계산하기 위해서는 SQL 에 SUM 을 사용하기 보다는
일단 Internal Table 에 저장하신후 Logic 으로 누적량을 계산하는 것이 정확할 것으로 사료됩니다.
-
mm_dsshin
2007.11.20 01:26
답변 주신분들 감사 드립니다. 디카촐님이 말씀해 주신대로도 해보고 다른 방법도 시도해 보겠습니다.
-
FIFIFI
2007.11.20 05:25
저도 초보이지만 제가아는 방법입니다. ^^;;
DATA DATUM LIKE SY-DATUM.
DATA DATUM1(4) TYPE C.
DATUM = SY-DATUM. "현재일
DATUM1 = DATUM+(4) - 1. "작년
DATUM+(4). "금년 -
mm_dsshin
2007.11.20 18:56
테이블의 인덱스를 걸었더니 속도가 상상을 초월할 정도로 빨라 졌습니다. E-ABAP , 지의, 디카촐, FIFIFI님 모두모두
감사드립니다. 기분이 짜릿합니다.
-
디카촐
2007.11.21 08:15
우호호. 도움이 되었다니 저도 기쁘네요..^^