Przeglądaj źródła

검색색인 쿼리 수정

eskim 5 lat temu
rodzic
commit
cc8faf2951

+ 37 - 24
산출물/3.설계/05.DB-Object/01.db_view/VW_SEARCH_GOODS.sql

@@ -1,6 +1,6 @@
 DROP VIEW VW_SEARCH_GOODS;
 CREATE VIEW VW_SEARCH_GOODS AS
-SELECT DISTINCT G.GOODS_CD
+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, '|', VS.CURR_STOCK_QTY)) FROM TB_OPTION T 
                                                                          INNER JOIN VW_STOCK VS ON T.GOODS_CD = VS.GOODS_CD 
@@ -32,14 +32,20 @@ SELECT DISTINCT G.GOODS_CD
      , G.ITEMKIND_CD
      , G.FORMAL_GB
      , G.LIST_PRICE
-     , BP.CURR_PRICE
-     , 100 - ROUND((BP.CURR_PRICE / G.LIST_PRICE) * 100 ,0) AS DC_RATE
+     , G.CURR_PRICE
+     , BP.PC_CURR_PRICE
+     , BP.MO_CURR_PRICE
+     , BP.APP_CURR_PRICE
+     -- , BP.CURR_PRICE
+     -- , 100 - ROUND((BP.CURR_PRICE / G.LIST_PRICE) * 100 ,0) AS DC_RATE
      , G.SELF_GOODS_YN
      , G.GOODS_STAT
      , G.PNT_PRATE
      , G.PRE_PPNT_USABLE_YN
      , G.PNT_MRATE
      , G.PRE_MPNT_USABLE_YN
+     -- , (CASE WHEN  'P' /**P*/ = 'P' THEN G.PNT_PRATE ELSE G.PNT_MRATE END) AS PNT_RATE
+     -- , (CASE WHEN  'P' /**P*/ = 'P' THEN G.PRE_PPNT_USABLE_YN ELSE G.PRE_MPNT_USABLE_YN END) AS PRE_PNT_USABLE_YN
      , G.MIN_ORD_QTY
      , G.MAX_ORD_QTY
      , G.DAY_MAX_ORD_QTY
@@ -48,7 +54,7 @@ SELECT DISTINCT G.GOODS_CD
      , E.DELV_FEE
      , E.MIN_ORD_AMT
      , G.GOODS_GB
-     , (SELECT NI_CLSF_CD FROM TB_ITEMKIND  WHERE ITEMKIND_CD = G.ITEMKIND_CD) AS NI_CLSF_CD
+     , (SELECT MAX(NI_CLSF_CD) FROM tb_goods_noti_info  WHERE GOODS_CD = G.GOODS_CD) AS NI_CLSF_CD
      , G.MAIN_COLOR_CD
      , G.SUPPLY_COMP_CD
      , G.SELF_MALL_YN
@@ -56,13 +62,13 @@ SELECT DISTINCT G.GOODS_CD
      , FN_GET_CODE_NM('G023',G.AGE_GRP_CD) AGE_GRP_NM
      , G.SEASON_CD 
      , FN_GET_CODE_NM('G006',G.SEASON_CD) SEASON_NM
-     , G.GIFT_PACK_YN
-     , G.NEW_CUST_ORD_YN
-     , G.ADULT_YN
+     -- , G.GIFT_PACK_YN
+     -- , G.NEW_CUST_ORD_YN
+     -- , G.ADULT_YN
      , G.GOODS_TYPE
-     , G.CHANGEABLE_YN
-     , 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
+     -- , G.CHANGEABLE_YN
+     -- , 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
 --     , (CASE WHEN W.GOODS_CD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN  -- 실시간 데이터 반영? 
@@ -72,7 +78,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(G.MAIN_COLOR_CD,'00') END)
+                                                                     ELSE  IFNULL(G.MAIN_COLOR_CD,'XX') END)
                                                 GROUP BY GOODS_CD )
             ELSE (SELECT IFNULL(MAX(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
                                       ELSE CURR_STOCK_QTY
@@ -82,12 +88,12 @@ SELECT DISTINCT G.GOODS_CD
                   GROUP BY GOODS_CD )
             END) AS STOCK_QTY
        , K.AD_KEYWORD
-       , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON
-       , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
-       , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
-       , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
-       , 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
+      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
+      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
+      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
+      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
+      -- , 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'
@@ -101,16 +107,18 @@ 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 
-            FROM TB_GOODS
-            ) BP ON G.GOODS_CD = BP.GOODS_CD
+                            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 
+--            FROM TB_GOODS
+--            ) 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
-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
+INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
+INNER JOIN TB_OPTION O ON G.GOODS_CD  = O.GOODS_CD
                             AND O.DISP_YN = 'Y'
+LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE BP ON G.GOODS_CD = BP.GOODS_CD 
+                                          AND BP.CUST_GB = 'G100_00'
 LEFT OUTER JOIN (SELECT AKG.GOODS_CD
                       , GROUP_CONCAT(AK.AD_KEYWORD) AS  AD_KEYWORD
                  FROM TB_AD_KEYWORD AK
@@ -141,6 +149,11 @@ 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 =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
 AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
+-- AND G.SELF_GOODS_YN ='Y'  -- 테스트용
 AND G.GOODS_STAT = 'G008_90'
+-- ) Z
+-- WHERE 1 = 1
+-- AND Z.AD_KEYWORD IS NOT NULL
 ;

+ 30 - 25
산출물/검색/검색_상품색인.sql

@@ -31,8 +31,12 @@ SELECT DISTINCT  G.GOODS_CD
      , G.ITEMKIND_CD
      , G.FORMAL_GB
      , G.LIST_PRICE
-     , BP.CURR_PRICE
-     , 100 - ROUND((BP.CURR_PRICE / G.LIST_PRICE) * 100 ,0) AS DC_RATE
+     , G.CURR_PRICE
+     , BP.PC_CURR_PRICE
+     , BP.MO_CURR_PRICE
+     , BP.APP_CURR_PRICE
+     -- , BP.CURR_PRICE
+     -- , 100 - ROUND((BP.CURR_PRICE / G.LIST_PRICE) * 100 ,0) AS DC_RATE
      , G.SELF_GOODS_YN
      , G.GOODS_STAT
      , G.PNT_PRATE
@@ -49,7 +53,7 @@ SELECT DISTINCT  G.GOODS_CD
      , E.DELV_FEE
      , E.MIN_ORD_AMT
      , G.GOODS_GB
-     , (SELECT NI_CLSF_CD FROM TB_ITEMKIND  WHERE ITEMKIND_CD = G.ITEMKIND_CD) AS NI_CLSF_CD
+     , (SELECT MAX(NI_CLSF_CD) FROM tb_goods_noti_info  WHERE GOODS_CD = G.GOODS_CD) AS NI_CLSF_CD
      , G.MAIN_COLOR_CD
      , G.SUPPLY_COMP_CD
      , G.SELF_MALL_YN
@@ -57,13 +61,13 @@ SELECT DISTINCT  G.GOODS_CD
      , FN_GET_CODE_NM('G023',G.AGE_GRP_CD) AGE_GRP_NM
      , G.SEASON_CD 
      , FN_GET_CODE_NM('G006',G.SEASON_CD) SEASON_NM
-     , G.GIFT_PACK_YN
-     , G.NEW_CUST_ORD_YN
-     , G.ADULT_YN
+     -- , G.GIFT_PACK_YN
+     -- , G.NEW_CUST_ORD_YN
+     -- , G.ADULT_YN
      , G.GOODS_TYPE
-     , G.CHANGEABLE_YN
-     , 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
+     -- , G.CHANGEABLE_YN
+     -- , 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
 --     , (CASE WHEN W.GOODS_CD IS NULL THEN 'N' ELSE 'Y' END) AS WISH_YN  -- 실시간 데이터 반영? 
@@ -83,12 +87,12 @@ SELECT DISTINCT  G.GOODS_CD
                   GROUP BY GOODS_CD )
             END) AS STOCK_QTY
        , K.AD_KEYWORD
-       , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON
-       , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
-       , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
-       , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
-       , 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
+      -- , FN_IS_GOODS_COUPON('P',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_PC_ICON  -- 속도 이슈
+      -- , FN_IS_GOODS_COUPON('M',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_MO_ICON
+      -- , FN_IS_GOODS_COUPON('A',G.GOODS_CD, BP.CURR_PRICE) AS COUPON_APP_ICON
+      -- , (CASE WHEN BP.CURR_PRICE <= E.MIN_ORD_AMT THEN 'Y' ELSE 'N' END) AS DELV_FREE_ICON
+      -- , 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'
@@ -102,17 +106,18 @@ 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 
-            FROM TB_GOODS
-            -- WHERE GOODS_CD =  '14443216' /**P*/
-            ) BP ON G.GOODS_CD = BP.GOODS_CD
+                            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 
+--            FROM TB_GOODS
+--            ) 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
-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
+INNER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
+INNER JOIN TB_OPTION O ON G.GOODS_CD  = O.GOODS_CD
                             AND O.DISP_YN = 'Y'
+LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE BP ON G.GOODS_CD = BP.GOODS_CD 
+                                          AND BP.CUST_GB = 'G100_00'
 LEFT OUTER JOIN (SELECT AKG.GOODS_CD
                       , GROUP_CONCAT(AK.AD_KEYWORD) AS  AD_KEYWORD
                  FROM TB_AD_KEYWORD AK
@@ -143,9 +148,9 @@ 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 =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
+-- AND G.GOODS_CD =  '14443216' /**P*/  -- 테스트용   입점:STYS00000042 , 자사:14443216 , 딜 : STYD000000025 , 세트 : STYS00000042
 AND G.SELF_MALL_YN = 'Y' -- 자사몰 노출(기획전과 상품상세는 노출)
-AND G.SELF_GOODS_YN ='Y'  -- 테스트용
+-- AND G.SELF_GOODS_YN ='Y'  -- 테스트용
 AND G.GOODS_STAT = 'G008_90'
 -- ) Z
 -- WHERE 1 = 1