고수님의 한수 가르침을 배우고자 이렇게 글을 올림니다.
지금 저장 프로시져 작성 중인데 막히는 부분이 있습니다.
DECLARE @FSTOCKDATE_YM VARCHAR (6);
DECLARE @FSTOCKDATE_D VARCHAR (2);
DECLARE @FPREDATE_YM VARCHAR (6);
DECLARE @FPREDATE_D VARCHAR (2);
SET @FSTOCKDATE_YM = SUBSTRING ( @FSTOCKDATE,1,6);
SET @FSTOCKDATE_D = SUBSTRING ( @FSTOCKDATE , 7 , 2 );
SET @FPREDATE_YM = SUBSTRING ( @FPREDATE,1,6);
SET @FPREDATE_D = SUBSTRING ( @FSTOCKDATE , 7 , 2 );
DECLARE CUR_STOCK_PRE CURSOR FOR
SELECT FITMCDE , FCURQTY , FCURAMT , FITMDAN , IFNULL ( FRNKTYP , 'A' )
FROM XPERTERP . T_E150
WHERE ( FITMYXM || FITMDAT = @FPREDATE ) ;
위와 같은 쿼리문의 WHERE 절을 아래와 같이 변경 하였습니다.
변경 이유는 FITMYXM 과 FITMDAT 가 모두 INDEX 이기 때문에
기존의 방식을 사용할 경우 처리가 늦어지는 문제가 발생하여 아래와 같이 변경 했습니다.
그러나 아래와 같이 실행 했을 경우, 기존의 테이터를 정확이 가져오지 못하고 있습니다.
WHERE ( FITMYXM = @FPREDATE_YM AND FITMDAT = @FPREDATE_D ) ;
고수님들 부탁 드립니다.
|