Parcourir la source

검색 색인 쿼리 수정중

eskim il y a 5 ans
Parent
commit
38608c0180
1 fichiers modifiés avec 37 ajouts et 26 suppressions
  1. 37 26
      산출물/검색/검색_상품색인.sql

+ 37 - 26
산출물/검색/검색_상품색인.sql

@@ -1,17 +1,22 @@
 -- SELECT * FROM (
 SELECT DISTINCT  G.GOODS_CD
      , IF(G.SELF_GOODS_YN  = 'Y', O.OPT_CD1, G.MAIN_COLOR_CD) AS COLOR_CD
-     , (SELECT GROUP_CONCAT(DISTINCT CONCAT(T.OPT_CD2,'|',T.SOLDOUT_YN)) FROM tb_option T 
-                                                                         WHERE T.DISP_YN  = 'Y' AND T.GOODS_CD = G.GOODS_CD AND T.OPT_CD1 = O.OPT_CD1 )AS SIZE_INFO
+     , (SELECT GROUP_CONCAT(DISTINCT CONCAT(T.OPT_CD2,'|',T.SOLDOUT_YN, '|', VS.CURR_STOCK_QTY)) FROM TB_OPTION T 
+                                                                         INNER JOIN VW_STOCK VS ON T.GOODS_CD = VS.GOODS_CD 
+                                                                                                AND T.OPT_CD  = VS.OPT_CD 
+                                                                         WHERE T.DISP_YN  = 'Y' 
+                                                                         AND T.GOODS_CD = G.GOODS_CD 
+                                                                         AND T.OPT_CD1 = O.OPT_CD1  ) AS SIZE_INFO
      , I.SIZE_GB 
      , (CASE WHEN I.SIZE_GB = 'T' THEN '상의'
-		     WHEN I.SIZE_GB = 'B' THEN '하의'
-		     WHEN I.SIZE_GB = 'S' THEN '신발'
-		     ELSE '' END
+             WHEN I.SIZE_GB = 'B' THEN '하의'
+             WHEN I.SIZE_GB = 'S' THEN '신발'
+             ELSE '' END
               ) AS SIZE_GB_NM 
      , (SELECT GROUP_CONCAT(DISTINCT CONCAT(T.OPT_CD1, '|',C.COLOR_FILE) ) FROM TB_OPTION T 
                                                                            INNER JOIN TB_COLOR C ON T.OPT_CD1 = C.COLOR_CD 
-                                                                           WHERE T.GOODS_CD = G.GOODS_CD AND T.DISP_YN  = 'Y')  AS COLOR_INFO
+                                                                           WHERE T.GOODS_CD = G.GOODS_CD 
+                                                                           AND T.DISP_YN  = 'Y')  AS COLOR_INFO
      , G.GOODS_NM
      , G.GOODS_TNM
      , CONCAT(IF(IFNULL(G.GOODS_GB,'') IN ('G073_11','G073_15', ''), '',IFNULL(CONCAT('[',FN_GET_CODE_NM('G073',G.GOODS_GB),']'),'') )
@@ -19,6 +24,7 @@ SELECT DISTINCT  G.GOODS_CD
              ,IF(G.PARALLEL_IMPORT_YN = 'Y','[병행수입]','')
              ,IF(G.ORDER_MADE_YN='Y','[주문제작]','')
              ,G.GOODS_NM ) AS GOODS_FULL_NM
+     , G.GOODS_SNM        
      , G.BRAND_CD
      , (CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM ELSE BG.BRAND_GROUP_KNM END) AS BRAND_GROUP_NM
      , BG.BRAND_GROUP_NO
@@ -59,7 +65,7 @@ SELECT DISTINCT  G.GOODS_CD
      , G.RETURNABLE_YN
      , (SELECT CATE1_NO FROM TB_SITE_BRAND WHERE  BRAND_CD = G.BRAND_CD AND SITE_CD =  'G000_10' AND USE_YN = 'Y') AS BRAND_CATE1_NO
      , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IF(G.SELF_GOODS_YN  = 'Y' AND G.GOODS_TYPE ='G056_N', O.OPT_CD1, G.MAIN_COLOR_CD) AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
- 	 , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IF(G.SELF_GOODS_YN  = 'Y' AND G.GOODS_TYPE ='G056_N', O.OPT_CD1, G.MAIN_COLOR_CD) AND MOUSEOVER_IMG_YN = 'Y') AS SYS_IMG_NM2
+     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = IF(G.SELF_GOODS_YN  = 'Y' AND G.GOODS_TYPE ='G056_N', O.OPT_CD1, G.MAIN_COLOR_CD) AND MOUSEOVER_IMG_YN = 'Y') AS SYS_IMG_NM2
 --     , (CASE WHEN W.GOODS_CD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN  -- 실시간 데이터 반영? 
      , (CASE WHEN G.GOODS_TYPE = 'G056_N' THEN (SELECT IFNULL(MAX(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
                                                                ELSE CURR_STOCK_QTY
@@ -67,7 +73,7 @@ SELECT DISTINCT  G.GOODS_CD
                                                 FROM  VW_STOCK
                                                 WHERE GOODS_CD = G.GOODS_CD
                                                 AND OPT_CD1 =  (CASE WHEN G.SELF_GOODS_YN = 'N' THEN OPT_CD1 
-                                                                    ELSE  IFNULL( null /**P*/, IFNULL(G.MAIN_COLOR_CD,'00')) END)
+                                                                     ELSE  IFNULL(G.MAIN_COLOR_CD,'00') END)
                                                 GROUP BY GOODS_CD )
             ELSE (SELECT IFNULL(MAX(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
                                       ELSE CURR_STOCK_QTY
@@ -82,32 +88,37 @@ SELECT DISTINCT  G.GOODS_CD
        , FN_GET_FREEGIFT_GOODS_YN(G.GOODS_CD) AS FREEGIFT_ICON
        , (CASE WHEN G.FORMAL_GB = 'G009_10' THEN 'Y' ELSE 'N' END) AS NEW_GOODS_ICON
        , (SELECT GROUP_CONCAT(DISTINCT CONCAT(C4.LEAF_CATE_NO , '|', C4.FULL_CATE_NM ) ) FROM TB_CATE_4SRCH C4
-																						 INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO 
-																						 WHERE  C4.SITE_CD = 'G000_10'
-																						 AND C4.CATE_TYPE = 'G031_10' -- 상품타입 
-																						 AND C4.CATE_GB  = 'G032_101' -- 
-																				         AND CG.GOODS_CD = G.GOODS_CD)  AS CATE_INFO
+                                                                                         INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO 
+                                                                                         WHERE  C4.SITE_CD = 'G000_10'
+                                                                                         AND C4.CATE_TYPE = 'G031_10' -- 상품타입 
+                                                                                         AND C4.CATE_GB  = 'G032_101' -- 
+                                                                                         AND CG.GOODS_CD = G.GOODS_CD)  AS CATE_INFO
+        , G.REG_DT AS REG_DT 
+        , GS.SELL_WEEK_QTY AS ORDER_CNT
+        , GS.REVIEW_REG_CNT AS REVIEW_CNT
 FROM TB_GOODS G
 INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
                       AND B.USE_YN = 'Y'
 INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
                             AND BG.USE_YN = 'Y'
-INNER JOIN (SELECT GOODS_CD, 
-            FN_GET_BENEFIT_PRICE( 'P' /**P*/,GOODS_CD, CURR_PRICE, '00' /**P*/) AS CURR_PRICE 
+INNER JOIN (SELECT GOODS_CD
+                 , FN_GET_BENEFIT_PRICE( 'P' /**P*/,GOODS_CD, CURR_PRICE, '00' /**P*/) AS CURR_PRICE 
             FROM TB_GOODS
             -- WHERE GOODS_CD =  '14443216' /**P*/
             ) BP ON G.GOODS_CD = BP.GOODS_CD
 INNER JOIN TB_DELV_FEE_POLICY E ON G.SUPPLY_COMP_CD = E.SUPPLY_COMP_CD
-		                                     AND G.DELV_FEE_CD =  E.DELV_FEE_CD
+                                AND G.DELV_FEE_CD =  E.DELV_FEE_CD
+INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD                               
 LEFT OUTER JOIN TB_OPTION O ON G.GOODS_CD  = O.GOODS_CD
                             AND O.DISP_YN = 'Y'
-LEFT OUTER JOIN (SELECT AKG.GOODS_CD, group_concat(AK.AD_KEYWORD) AS  AD_KEYWORD
-               FROM tb_ad_keyword AK
-               INNER JOIN tb_ad_keyword_goods AKG ON AK.AD_KEYWORD_SQ  = AKG.AD_KEYWORD_SQ 
-               WHERE NOW() BETWEEN  AK.AD_KEYWORD_STDT AND AK.AD_KEYWORD_EDDT
-               AND AK.USE_YN  = 'Y'    
-               GROUP BY  AKG.GOODS_CD
-              ) K ON G.GOODS_CD = K.GOODS_CD 
+LEFT OUTER JOIN (SELECT AKG.GOODS_CD
+                      , GROUP_CONCAT(AK.AD_KEYWORD) AS  AD_KEYWORD
+                 FROM TB_AD_KEYWORD AK
+                 INNER JOIN TB_AD_KEYWORD_GOODS AKG ON AK.AD_KEYWORD_SQ  = AKG.AD_KEYWORD_SQ 
+                 WHERE NOW() BETWEEN  AK.AD_KEYWORD_STDT AND AK.AD_KEYWORD_EDDT
+                 AND AK.USE_YN  = 'Y'
+                 GROUP BY  AKG.GOODS_CD
+                ) K ON G.GOODS_CD = K.GOODS_CD 
 LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD 
                          , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_GB END) AS  VIDEO_GB_M
                          , MAX(CASE WHEN  RNUM = 1 THEN  VIDEO_VAL END) AS  VIDEO_VAL_M
@@ -125,12 +136,12 @@ LEFT OUTER JOIN (SELECT MAX(GOODS_CD) AS GOODS_CD
                          WHERE A.DISPLOC_GB ='G'
                          AND A.DISP_YN = 'Y'
                         ) V
-                   ) V ON G.GOODS_CD = V.GOODS_CD     
-LEFT OUTER JOIN tb_itemkind I ON G.ITEMKIND_CD  = I.ITEMKIND_CD                 
+                   ) V ON G.GOODS_CD = V.GOODS_CD 
+LEFT OUTER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD  = I.ITEMKIND_CD 
 -- LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
 --                               AND IFNULL( 0 /**P*/, 0) = W.CUST_NO
 WHERE 1 = 1                              
- AND G.GOODS_CD =  'STYS00000042' /**P*/  -- 테스트용  STYS00000042  14443216
+ AND G.GOODS_CD =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
 AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
 AND G.SELF_GOODS_YN ='Y'  -- 테스트용
 AND G.GOODS_STAT = 'G008_90'