2016년 2월 15일 월요일

상품 목록에서 같은 품목이 여러개 있는데.. 가격이 각각일때.. 최소값 찾는 로직을 생각해 보았다..

회사 업무중..

상품 목록에서 같은 품목이 여러개 있는데.. 가격이 각각일때.. 최소값 찾는 로직을 생각해 보았다..

NEW_GOODS라는 상품 목록 테이블이 있고.. 분류가 'C'로 시작하는 넘들을

MASTER_ITEM 이란 테이블에서 근사 값으로 가장 차이가 작은 넘들을 찾는 로직을

짜 봄...

한 쿼리로 해볼라고 했으나.. 실력 부족인지..

임시테이블을 사용해서 함..

일단.. NEW_GOODS와 MASTER_ITEM의 값 차이를 절대값으로 나열하는 테이블 생성..


SELECT 구바코드,
       Min(absval) AS ABSVAL
INTO   #tbl_abs
FROM   (SELECT A.구바코드,
               A.판매가,
               A.도서명,
               B.item_cd,
               B.item_nm,
               B.jung_unit,
               Abs(A.판매가 - B.jung_unit) AS ABSVAL
        FROM   new_goods A,
               master_item B
        WHERE  1 = 1
               AND LEFT(소분류, 1) = 'C'
               AND A.구바코드 = B.ean_cd) X
WHERE  1 = 1
GROUP  BY 구바코드 


그 다음.. 절대값 테이블에서 최소값만 매칭해서 검색하면 끝! 참 쉽죠??

SELECT DISTINCT X.구바코드,
                X.판매가,
                Min(item_cd) AS ITEM_CD
FROM   (SELECT A.구바코드,
               A.판매가,
               A.도서명,
               B.item_cd,
               B.item_nm,
               B.jung_unit ,
               Abs(A.판매가 - B.jung_unit) AS ABSVAL
        FROM   new_goods A,
               master_item B
        WHERE  1 = 1
               AND LEFT(소분류, 1) = 'C'
               AND A.구바코드 = B.ean_cd) X,
       #tbl_abs Y
WHERE  1 = 1
       AND X.absval = Y.absval
GROUP  BY X.구바코드,
          X.판매가
ORDER  BY 1 

댓글 없음:

댓글 쓰기

BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연

나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감.​ 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...