회사 업무중..
상품 목록에서 같은 품목이 여러개 있는데.. 가격이 각각일때.. 최소값 찾는 로직을 생각해 보았다..
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
피드 구독하기:
댓글 (Atom)
-
진짜.. 이걸로.. 쌩쑈를 다 해서리.. 정리차 적어 놓음.. 0. 쇼핑몰 리뉴얼 중 주문 화면에서 우편 번호를 받으면 이게 산간 오지 지역이면 도선료를 추가로 부여해야 하는 상황 발생. 1. 쇼핑몰 솔루션을 자체 마이그레이션 하는 것이기에 알...
-
"Recordset.Get Rows() + Recordset.Move()" this is fastest way without using stored procedures. 프로시저 없을시엔 getrows + move 가 가장 성능이...
-
모든 일의 시작은.. 최근에 JRE를 업데이트를 했는데.. 32-Bit로 update가 된 듯... Eclipse 실행시 !ENTRY org.eclipse.osgi 4 0 2015-03-31 14:21:48.411 !MESSAGE Ap...
BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연
나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감. 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...
댓글 없음:
댓글 쓰기