가격등급 테이블 : t_franchise_priceGroup(매장별 등급 관리)
가격관리 테이블 : t_product_price(매장별 가격 저장)
t_franchise_priceGroup 필드값
LVL : 등급(LVL_1, LVL_2, LVL_3, LVL_4, LVL_5, LVL_6)
title : 등급명(일반매장, 직영점, 유통업체, 거래점가, 인터넷, 기타)
select LVL, title from t_franchise_priceGroup
출력값
등급, 등급명
LVL_1 일반매장
LVL_2 직영점
LVL_3 유통업체
LVL_4 거래점가
LVL_5 인터넷
LVL_6 기타
select LVL_1, LVL_2, LVL_3, LVL_4, LVL_5, LVL_6 from t_product_price
출력값
5000, 5100, 5200, 5300, 5400, 5500
제가 원하는 데이터 출려값은 아래와 같습니다.
LVL_1, 일반매장, 5000
LVL_2, 직영점, 5100
LVL_3, 유통업체, 5200
LVL_4, 거래점가, 5300
LVL_5, 인터넷, 5400
LVL_6, 기타, 5500
현재 개발단계이기에 조언을 바랍니다.
t_franchise_priceGroup 데이터는 추가될 수 있습니다.
Comment 4
-
건우아빠
2017.04.25 20:42
-
팔개
2017.04.25 20:56
제 설명이 부족했나봅니다.
t_franchise_priceGroup 테이블은 각 매장별 가격등급을 쉽게 처리하기 위한 테이블 입니다.
이 테이블에 저장 된 등급만큼 가격테이블(t_product_price)의 필드값도 늘어나구요..
t_franchise_priceGroup 필드명은 아래와 같습니다.
등급(LVL) 등급명(title) 마진율(rate)
데이터 LVL_1 일반매장 35%
LVL_2 가맹점 30%
.
.
.
t_product_price(가격테이블)
기본키(상품코드)
상품코드(pcode) 일반매장(LVL_1) 가맹점(LVL_2) .....
P12345 1000 2000
P26546 1300 2500
이런형태로 테이블을 구성하였는데, 처음에는 가능할 것이라고 생각하였는데,
막상 쿼리문을 만들다보니 잘못한 것인가 해서 질문을 드렸습니다.
-
건우아빠
2017.04.26 20:25
t_franchise_priceGroup 테이블은 추가가 되지는 않는거죠 ?
t_product_price 테이블에서는 LVL_1(등급) 이 컬럼으로 구성 되어 있어서 조인을 통한 방법은 없습니다.
등급명인 경우는 고정적으로 각컬럼의 의미로 보시면 되고 마진율이 변동 된다면 서브쿼리로 가져오는 방법밖에는 없을듯 합니다.
t_franchise_priceGroup 과 상품 가격 테이블과의 조인 보다는 중간에 매장 정보에 등급정보가 있을듯 합니다.
가격테이블과는 별도로 매장별 가격 테이블을 뷰로 만드셔서 이용하시는게 좋을듯 합니다.
t_franchise_priceGroup 데이터는 추가될 수 있습니다.
이러면 t_product_price 컬럼이 추가되어애 하는 심각한 문제가 발생 합니다. 이러면 구조상 좋은 구조는 아닌것 같습니다.
-
팔개
2017.04.26 22:44
조언 감사합니다.
처음에는 필드와 데이터값이 동일하면 단순하게 조인이 가능할 것이라고 생각하고 설계를 했는데,
막상 쿼리문을 만들려고 하니깐 아차 싶네요..
시간적이 여유가 없어서 생각을 깊게 하지 못했다고 하지만,
역시 경험 부족이 아닌가 생각이 드는..
대충 테이블을 임의로 간략화 하신듯 한데
최소한 기본키가 되는 컬럼은 추가하시면 좋을듯합니다.
질문 내용으로 보면 두테이블간은 조합으로 구성하셔야 합니다.
조합하시고 case로 분리하시면 될듯하네요..