-- 브랜드 * -- 사이즈 * -- 가격 * -- 할인율 * -- 연령 * -- 시즌 * -- 컬러 * -- 혜택 -- 필터-브랜드 (getFilterBrandList) SELECT BG.BRAND_GROUP_NO /*브랜드그룹번호*/ , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM ELSE BG.BRAND_GROUP_KNM END AS BRAND_GROUP_NM /*브랜드그룹명*/ FROM TB_BRAND_GROUP BG WHERE BRAND_GROUP_NO IN (SELECT B.BRAND_GROUP_NO FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND G.GOODS_CD = GS.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ) WHERE BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/ ORDER BY 2 ; -- 필터 - 사이즈 (getFilterSizeList) SELECT DISTINCT I.SIZE_GB /*사이즈구분(T:상의, B:하의, S:신발)*/ , S.OPT_CD2 /*옵션코드2*/ FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_ITEMKIND I , VW_STOCK S , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND G.ITEMKIND_CD = I.ITEMKIND_CD AND G.GOODS_CD = S.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND I.SIZE_GB IS NOT NULL AND S.CURR_STOCK_QTY - S.BASE_STOCK_QTY ]]> 0 /*재고있는옵션*/ AND S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/ AND S.DISP_YN = 'Y' /*노출하는 옵션*/ AND LENGTH(S.OPT_CD2) > 0 AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ORDER BY CASE WHEN I.SIZE_GB = 'T' THEN 1 WHEN I.SIZE_GB = 'B' THEN 2 WHEN I.SIZE_GB = 'S' THEN 3 ELSE 4 END, S.OPT_CD2 ; -- 필터-가격 (getFilterPriceList) SELECT FLOOR(MIN_CURR_PRICE / 1000) * 1000 AS PRICE1 , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2 , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3 , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4 , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5 , FLOOR(MAX_CURR_PRICE / 1000) * 1000 AS PRICE6 FROM ( SELECT MIN(CURR_PRICE) AS MIN_CURR_PRICE /*최소현재판매가*/ , MAX(CURR_PRICE) AS MAX_CURR_PRICE /*최대현재판매가*/ , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/ FROM ( SELECT FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/ FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND CG.GOODS_CD = GS.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ) Z ) Z ; -- 필터-연령대 (getFilterAgesList) SELECT CD AS AGES_CD /*연령대코드*/ , CD_NM AS AGES_NM /*연령대명*/ FROM TB_COMMON_CODE WHERE CD_GB = 'G023' AND CD IN (SELECT G.AGE_GRP_CD FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND CG.GOODS_CD = GS.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ) AND USE_YN = 'Y' ORDER BY DISP_ORD ; -- 필터-시즌 (getFilterSeasonList) SELECT CD AS SEASON_CD /*시즌코드*/ , CD_NM AS SEASON_NM /*시즌명*/ FROM TB_COMMON_CODE WHERE CD_GB = 'G006' AND CD IN (SELECT G.SEASON_CD FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND CG.GOODS_CD = GS.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ) AND USE_YN = 'Y' ORDER BY DISP_ORD ; -- 필터-컬러 (getFilterColorList) SELECT C.COLOR_GRP_CD /*컬러그룹코드*/ , CC.CD_DESC AS COLOR_CHIP /*컬러칩*/ FROM TB_COLOR C , TB_COMMON_CODE CC WHERE C.COLOR_GRP_CD = CC.CD AND CC.CD_GB = 'G072' AND C.COLOR_CD IN (SELECT O.OPT_CD1 FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_BRAND B , TB_SITE_BRAND SB , TB_OPTION O WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND CG.GOODS_CD = GS.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND G.GOODS_CD = O.GOODS_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ AND O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/ AND O.DISP_YN = 'Y' /*노출하는 옵션*/ ) AND CC.USE_YN = 'Y' ORDER BY CC.DISP_ORD ; -- 필터 - 상품혜택 (getFilterGoodsBenefitList) WITH TAB_BENEFIT AS ( SELECT GB.CPN_YN , GB.FREEGIFT_YN , G.FORMAL_GB , G.MIN_ORD_AMT , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/ FROM TB_CATE_4SRCH C4 , TB_CATE_GOODS CG , TB_GOODS G , TB_GOODS_STOCK GS , TB_GOODS_BENEFIT GB , TB_BRAND B , TB_SITE_BRAND SB WHERE C4.LEAF_CATE_NO = CG.CATE_NO AND CG.BRAND_GROUP_NO = #{brandGroupNo} AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/ AND CG.GOODS_CD = G.GOODS_CD AND CG.GOODS_CD = GS.GOODS_CD AND G.GOODS_CD = GB.GOODS_CD AND G.BRAND_CD = B.BRAND_CD AND B.BRAND_CD = SB.BRAND_CD AND C4.SITE_CD = #{siteCd} AND C4.CATE_GB = #{cateGb} AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/ AND C4.CATE1_NO = #{cate1No} AND C4.CATE2_NO = #{cate2No} AND C4.CATE3_NO = #{cate3No} AND C4.CATE4_NO = #{cate4No} AND C4.CATE5_NO = #{cate5No} AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/ AND GS.STOCK_QTY ]]> 0 /*재고있는상품*/ AND SB.SITE_CD = #{siteCd} AND SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ ) SELECT '10' AS BENEFIT_CD , '쿠폰할인' AS BENEFIT_NM FROM TAB_BENEFIT WHERE CPN_YN = 'Y' UNION ALL SELECT '20' AS BENEFIT_CD , '무료배송' AS BENEFIT_NM FROM TAB_BENEFIT WHERE MIN_ORD_AMT >= CURR_PRICE UNION ALL SELECT '30' AS BENEFIT_CD , '사은품' AS BENEFIT_NM FROM TAB_BENEFIT WHERE FREEGIFT_YN = 'Y' UNION ALL SELECT '40' AS BENEFIT_CD , '신상' AS BENEFIT_NM FROM TAB_BENEFIT WHERE FORMAL_GB = 'G009_10' ; SELECT * FROM TB_GOODS_VIDEO; SELECT * FROM TB_GOODS_BENEFIT_PRICE; SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY RNUM SEPARATOR ',') FROM ( SELECT GV.VIDEO_GB , GV.KMC_KEY , GV.REG_DT , RANK() OVER(ORDER BY GV.REG_DT, GV.KMC_KEY) AS RNUM FROM TB_GOODS_VIDEO GV WHERE GV.GOODS_CD = 'CNW1XAPT32' AND GV.DISP_YN = 'Y' AND GV.KMC_KEY IS NOT NULL ) Z ; /* TsfGoods.getGoodsList */ 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 /*리뷰등록건수*/ -- , G.NUMB 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 /*정상가(최초판매가)*/ -- , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'') AS CURR_PRICE /*현재판매가*/ , CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN GBP.PC_CURR_PRICE WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN GBP.MO_CURR_PRICE WHEN #{frontGb} = 'A' AND #{custGb} != '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 -- -- AND C4.CATE2_NO = #{cate2No} -- -- -- AND C4.CATE3_NO = #{cate3No} -- -- -- AND C4.CATE4_NO = #{cate4No} -- -- -- AND C4.CATE5_NO = #{cate5No} -- -- -- -- AND CG.BRAND_GROUP_NO = #{brandGroupNo} -- -- 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 G.AGE_GRP_CD IN -- -- #{item} -- -- -- -- AND G.SEASON_CD IN -- -- #{item} -- -- -- AND G.FORMAL_GB = 'G009_10' /*정상상품만*/ -- -- AND G.SEX_GB = 'G007_Z' /*남여공용*/ -- AND S.STOCK_QTY > 0 /*재고있는 상품*/ AND B.USE_YN = 'Y' /*사용하는 브랜드*/ -- -- AND BG.BRAND_GROUP_NO IN -- -- #{item} -- -- AND BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/ -- -- AND EXISTS (SELECT 1 -- FROM TB_GOODS_BENEFIT -- WHERE GOODS_CD = CG.GOODS_CD -- AND BENEFIT_GB IN -- -- #{item} -- -- ) -- -- -- AND EXISTS (SELECT 1 -- FROM TB_OPTION -- WHERE GOODS_CD = CG.GOODS_CD -- AND OPT_CD2 IN -- -- #{item} -- -- AND DISP_YN = 'N' -- ) -- ) G WHERE 1 = 1 -- -- AND G.CURR_PRICE =]]> #{priceFrom} -- -- -- AND G.CURR_PRICE #{priceTo} -- -- -- AND ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) =]]> #{dcRateFrom} -- -- -- AND ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) #{dcRateTo} -- ) , 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.OPT_CD1 IN (SELECT COLOR_CD FROM TB_COLOR WHERE 1 = 1 -- AND COLOR_GRP_CD IN -- -- #{item} -- AND USE_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 GS.SELL_WEEK_QTY DESC -- , G.GOODS_CD) AS NUMB -- -- -- , RANK() OVER(ORDER BY GS.REVIEW_REG_CNT DESC -- , G.GOODS_CD) AS NUMB -- -- , 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 NUMB BETWEEN 1 AND 30 ) , 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 ) -- , TAB_GOODS_VIDEO AS ( -- /* 상품의 동영상 목록 */ -- SELECT GOODS_CD -- , MAX(CASE WHEN RNUM = 1 THEN VIDEO_GB END) AS VIDEO_GB_M -- , MAX(CASE WHEN RNUM = 1 THEN KMC_KEY END) AS VIDEO_VAL_M -- , MAX(CASE WHEN RNUM = 2 THEN VIDEO_GB END) AS VIDEO_GB_S -- , MAX(CASE WHEN RNUM = 2 THEN KMC_KEY END) AS VIDEO_VAL_S -- FROM ( -- SELECT G.GOODS_CD -- , GV.VIDEO_GB -- , GV.KMC_KEY -- , GV.REG_DT -- , RANK() OVER(PARTITION BY G.GOODS_CD ORDER BY GV.REG_DT) AS RNUM -- FROM TAB_ALL_GOODS G -- , TB_GOODS_VIDEO GV -- WHERE G.GOODS_CD = GV.GOODS_CD -- AND GV.DISP_YN = 'Y' -- AND GV.KMC_KEY IS NOT NULL -- ) 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 MAX(GI.SYS_IMG_NM) -- FROM TB_GOODS_IMG GI -- WHERE GI.GOODS_CD = G.GOODS_CD -- AND GI.COLOR_CD = G.MAIN_COLOR_CD -- AND GI.DEFAULT_IMG_YN = 'Y' -- ) AS SYS_IMG_NM -- , ( -- SELECT MAX(GI.SYS_IMG_NM) -- FROM TB_GOODS_IMG GI -- WHERE GI.GOODS_CD = G.GOODS_CD -- AND GI.COLOR_CD = G.MAIN_COLOR_CD -- AND GI.MOUSEOVER_IMG_YN = 'Y' -- ) AS 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 /*사이즈*/ , FORMAL_GB , REG_DT , NUMB -- -- -- , IF(W.GOODS_CD IS NULL,'','likeit') AS LIKE_IT /*위시리스트담긴상품*/ -- -- -- , '' AS LIKE_IT /*위시리스트담긴상품*/ -- -- FROM TAB_ALL_GOODS G LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD -- LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD -- -- LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD -- AND W.CUST_NO = #{custNo} -- ;