(SELECT
SW_UNIT_ID, SW_UNIT_ VERSION
FROM
T_SW_UNIT
WHERE
DEV_ID = @dev_id
AND SW_VERSION = @max_version) MAXSW, -- 최신 단위 소프트웨어 목록을 얻어 온다.
(SELECT
SW_UNIT_ID, SW_UNIT_ VERSION
FROM
T_SW_UNIT
WHERE
DEV_ID = @dev_id
AND SW_VERSION = @sw_version) CURSW -- 현재 단위 소프트웨어 목록을 얻어 온다.
WHERE
MAXSW.SW_UNIT_VERSION > CURSW.SW_UNIT_VERSION) UPDATESW -- 업데이트할 단위 소프트웨어 목록을 얻어 온다.
위 쿼리는 업데이트 목록을 얻어 오는 쿼리 입니다.
문제는 REQ_SW_VERSION 필드 입니다.
위 필드에는 업데이트 목록중 먼저 업데이트 해야할 버전을 가리키는 필드 입니다.
위 업데이트 목록중에 REQ_SW_VERSION에 값이 있을 DEV_ID가 @dev_id 이고
SW_UNIT_VERSION 이 REQ_SW_VERSION 인경우의 SW_VERSION이 @sw_version보다 큰경우에 업데이트 목록에 포함을 시켜야 한다.
위의 경우의 목록이 있을경우 없을때까지 반복하여 목록을 추가한다.
위의 경우를 SP로 작성을 하는데 반복을 해서 요청한 버전보다 같아질때까지 업데이트 목록을 추가 시키는 쿼리가 영 감이 오질 않습니다.
좀 도와 주세요~ |