Kaynağa Gözat

프론트 상품리스트

bin2107 5 yıl önce
ebeveyn
işleme
d5d16c1396

+ 193 - 0
산출물/4.구축/데이터처리/프론트_상품리스트.sql

@@ -0,0 +1,193 @@
+/* TsfDisplay.getCategoryGoodsList */
+		WITH TAB_GOODS AS (
+		SELECT G.BRAND_GROUP_NM     /*브랜드그룹명*/
+		, G.GOODS_CD           /*상품코드*/
+		, G.GOODS_NM           /*상품명*/
+		, G.GOODS_GB           /*상품구분*/
+		, G.SELF_GOODS_YN      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		, G.ORDER_MADE_YN      /*주문제작여부*/
+		, G.GOODS_TNM          /*상품타이틀명*/
+		, G.MAIN_COLOR_CD      /*대표색상코드*/
+		, G.LIST_PRICE         /*정상가(최초판매가)*/
+		, G.CURR_PRICE         /*현재판매가*/
+		, G.FORMAL_GB
+		, G.REG_DT             /*등록일시*/
+		, G.SELL_WEEK_QTY  /*주간판매수량*/
+		, G.REVIEW_REG_CNT /*리뷰등록건수*/
+		FROM   (
+		SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		BG.BRAND_GROUP_ENM
+		ELSE
+		BG.BRAND_GROUP_KNM
+		END                                                                AS BRAND_GROUP_NM /*브랜드그룹명*/
+		, G.GOODS_CD                                                                           /*상품코드*/
+		, G.GOODS_NM                                                                           /*상품명*/
+		, G.GOODS_GB                                                                           /*상품구분*/
+		, G.SELF_GOODS_YN                                                                      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN                                                                     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN                                                                 /*병행수입여부*/
+		, G.ORDER_MADE_YN                                                                      /*주문제작여부*/
+		, G.GOODS_TNM                                                                          /*상품타이틀명*/
+		, G.MAIN_COLOR_CD                                                                      /*대표색상코드*/
+		, G.LIST_PRICE                                                                         /*정상가(최초판매가)*/
+		, CASE WHEN 'P' = 'P' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
+		WHEN 'P' = 'M' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
+		WHEN 'P' = 'A' AND GBP.CUST_GB = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
+		WHEN 'P' = 'P' AND GBP.CUST_GB != 'G100_20' THEN GBP.PC_CURR_PRICE
+		WHEN 'P' = 'M' AND GBP.CUST_GB != 'G100_20' THEN GBP.MO_CURR_PRICE
+		WHEN 'P' = 'A' AND GBP.CUST_GB != 'G100_20' THEN GBP.APP_CURR_PRICE
+		ELSE G.CURR_PRICE
+		END                                                   AS CURR_PRICE       /*현재판매가*/
+		, G.MIN_ORD_AMT                                                                        /*최수주문금액*/
+		, G.FORMAL_GB /*정상이월구분*/
+		, G.REG_DT                                                                             /*등록일시*/
+		, GS.SELL_WEEK_QTY  /*주간판매수량*/
+		, GS.REVIEW_REG_CNT /*리뷰등록건수*/
+		FROM   TB_CATE_4SRCH C4
+		INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
+		INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
+		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
+		WHERE  C4.SITE_CD = 'G000_10'
+		AND    C4.CATE_GB = 'G032_101'
+		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		AND    C4.CATE1_NO =  1100 /**P*/
+				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/			 
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		) G
+		WHERE  1 = 1
+		)
+		, TAB_OPTION AS (
+		/* 자사상품 색상 목록 */
+		SELECT O.GOODS_CD
+		, O.OPT_CD1  AS MAIN_COLOR_CD
+		FROM   TAB_GOODS G
+		, TB_OPTION O
+		WHERE  G.GOODS_CD = O.GOODS_CD
+		AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+		AND    O.DISP_YN = 'N'
+		GROUP  BY O.GOODS_CD, O.OPT_CD1
+		)
+		, TAB_ALL_GOODS AS (
+		SELECT *
+		FROM   (
+		SELECT G.BRAND_GROUP_NM
+		, G.GOODS_CD
+		, G.GOODS_NM           /*상품명*/
+		, G.GOODS_GB           /*상품구분*/
+		, G.SELF_GOODS_YN      /*자사상품여부*/
+		, G.FOREIGN_BUY_YN     /*해외구매대행여부*/
+		, G.PARALLEL_IMPORT_YN /*병행수입여부*/
+		, G.ORDER_MADE_YN      /*주문제작여부*/
+		, G.GOODS_TNM          /*상품타이틀명*/
+		, IFNULL(O.MAIN_COLOR_CD,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD /*대표색상코드*/
+		, G.LIST_PRICE         /*정상가(최초판매가)*/
+		, G.CURR_PRICE         /*현재판매가*/
+		, G.FORMAL_GB
+		, G.REG_DT             /*등록일시*/
+		, G.SELL_WEEK_QTY
+		, G.REVIEW_REG_CNT
+		, RANK() OVER(ORDER BY G.FORMAL_GB
+		, G.REG_DT DESC
+		, G.GOODS_CD) AS NUMB
+		FROM TAB_GOODS G
+		LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		) ORIGINAL
+		WHERE 1=1
+			AND  NUMB BETWEEN  1 /**P*/ AND  30 /**P*/		 		
+		)
+		, TAB_GOODS_IMG AS (
+		/* 상품의 이미지 */
+		SELECT GOODS_CD
+		,MAX(SYS_IMG_NM)  AS SYS_IMG_NM
+		,MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		FROM   (
+		SELECT G.GOODS_CD
+		, CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END   AS SYS_IMG_NM
+		, CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
+		FROM   TAB_ALL_GOODS G
+		, TB_GOODS_IMG GI
+		WHERE  G.GOODS_CD = GI.GOODS_CD
+		AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		) Z
+		GROUP  BY GOODS_CD
+		)
+		SELECT G.BRAND_GROUP_NM
+		, G.GOODS_CD
+		, FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		, G.GOODS_TNM
+		, G.MAIN_COLOR_CD
+		, G.LIST_PRICE
+		, G.CURR_PRICE                                                                                                  /*현재판매가*/
+		, GI.SYS_IMG_NM
+		, GI.SYS_IMG_NM2
+		, (
+		SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY NUMB SEPARATOR ',')
+		FROM   (
+		SELECT GV.VIDEO_GB
+		, GV.KMC_KEY
+		, GV.REG_DT
+		, RANK() OVER(ORDER BY GV.REG_DT, GV.KMC_KEY) AS NUMB
+		FROM   TB_GOODS_VIDEO GV
+		WHERE  GV.GOODS_CD = G.GOODS_CD
+		AND    GV.DISP_YN = 'Y'
+		AND    GV.KMC_KEY IS NOT NULL
+		) Z
+		WHERE  NUMB  <=   2
+		) AS VIDEO_VAL
+		, (
+		SELECT GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
+		FROM   TB_OPTION O
+		, TB_COLOR C
+		, TB_COMMON_CODE CC
+		WHERE  O.OPT_CD1 = C.COLOR_CD
+		AND    C.COLOR_GRP_CD = CC.CD
+		AND    O.GOODS_CD = G.GOODS_CD
+		AND    O.DISP_YN = 'Y'
+		AND    C.USE_YN = 'Y'
+		AND    CC.USE_YN = 'Y'
+		) AS COLOR_CHIPS /*컬러칩*/
+		, (
+		SELECT GROUP_CONCAT(DISTINCT CONCAT(OPT_CD2
+		,':'
+		,CASE WHEN SOLDOUT_YN = 'Y' THEN 'Y'
+		ELSE
+		CASE WHEN CURR_STOCK_QTY - BASE_STOCK_QTY > 0 THEN 'N'
+		ELSE 'Y'
+		END
+		END)
+		ORDER BY DISP_ORD SEPARATOR ',') AS SIZES
+		FROM   VW_STOCK
+		WHERE  GOODS_CD = G.GOODS_CD
+		AND    OPT_CD1 = G.MAIN_COLOR_CD
+		AND    DISP_YN = 'Y'
+		) AS SIZES /*사이즈*/
+		, (
+		SELECT GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',')
+		FROM   (
+		SELECT GB.BENEFIT_GB
+		, CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
+		       WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
+		       WHEN GB.BENEFIT_GB = '30' THEN '사은품'
+		       ELSE '신상' END AS BENEFIT_NM
+		, RANK() OVER(ORDER BY GB.BENEFIT_GB, GB.GOODS_CD) AS NUMB
+		FROM   TB_GOODS_BENEFIT GB
+		WHERE  GB.GOODS_CD = G.GOODS_CD
+		) Z
+		) AS ICON
+		, FORMAL_GB
+		, REG_DT
+		, NUMB		 
+				, ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/			 
+		FROM TAB_ALL_GOODS G
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD