Просмотр исходного кода

TB_CATE_FILTER, TB_CATE_FILTER_TMP 테이블 추가

gagamel 5 лет назад
Родитель
Сommit
b27412bd2e

+ 19 - 0
산출물/3.설계/05.DB-Object/06.DDL/table.sql

@@ -13685,3 +13685,22 @@ CREATE TABLE TB_CATE_FILTER
 )
 COMMENT '카테고리필터. 카테고리의 상품 조회를 위한 필터 생성에 의한 발생'
 ;
+
+################################################################################
+#카테고리필터임시
+################################################################################
+DROP TABLE IF EXISTS TB_CATE_FILTER_TMP;
+CREATE TABLE TB_CATE_FILTER_TMP
+(
+  SITE_CD        VARCHAR(20)       NOT NULL COMMENT '사이트코드(공통코드G000)',
+  CATE_GB        VARCHAR(20)       NOT NULL COMMENT '카테고리구분(공통코드G032)',
+  FORMAL_GB      VARCHAR(20)       NOT NULL COMMENT '정상이월구분(공통코드G009)',
+  BRAND_GROUP_NO INT UNSIGNED      NOT NULL COMMENT '브랜드그룹번호(브랜드그룹). 브랜드그룹이 없으면 0',
+  CATE_NO        INT UNSIGNED      NOT NULL COMMENT '카테고리번호(카테고리)',
+  FILTER_GB      VARCHAR(20)       NOT NULL COMMENT '필터구분(BRAND:브랜드, SIZE:사이즈, PRICE:가격, SEASON:시즌, COLOR:컬러, BENEFIT:혜택)',
+  FILTER_CD      VARCHAR(20)       NOT NULL COMMENT '필터코드',
+  FILTER_NM      VARCHAR(50)       NOT NULL COMMENT '필터명',
+  DISP_ORD       SMALLINT UNSIGNED NOT NULL COMMENT '표시순서'
+)
+COMMENT '카테고리필터임시. 카테고리의 상품 조회를 위한 필터 생성에 의한 발생'
+;

+ 19 - 258
산출물/4.구축/데이터처리/10.카테고리필터생성(TB_CATE_FILTER).sql

@@ -1,27 +1,7 @@
-################################################################################
-#카테고리필터
-################################################################################
-CREATE TABLE TMP_CATE_FILTER
-(
-  SITE_CD        VARCHAR(20)       NOT NULL COMMENT '사이트코드(공통코드G000)',
-  CATE_GB        VARCHAR(20)       NOT NULL COMMENT '카테고리구분(공통코드G032)',
-  FORMAL_GB      VARCHAR(20)       NOT NULL COMMENT '정상이월구분(공통코드G009)',
-  BRAND_GROUP_NO INT UNSIGNED      NOT NULL COMMENT '브랜드그룹번호(브랜드그룹). 브랜드그룹이 없으면 0',
-  CATE_NO        INT UNSIGNED      NOT NULL COMMENT '카테고리번호(카테고리)',
-  FILTER_GB      VARCHAR(20)       NOT NULL COMMENT '필터구분(BRAND:브랜드, SIZE:사이즈, PRICE:가격, SEASON:시즌, COLOR:컬러, BENEFIT:혜택)',
-  FILTER_CD      VARCHAR(20)       NOT NULL COMMENT '필터코드',
-  FILTER_NM      VARCHAR(50)       NOT NULL COMMENT '필터명',
-  DISP_ORD       SMALLINT UNSIGNED NOT NULL COMMENT '표시순서',
-  REG_NO         INT UNSIGNED      NOT NULL COMMENT '등록자번호',
-  REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시'
-)
-COMMENT '카테고리필터. 카테고리의 상품 조회를 위한 필터 생성에 의한 발생'
-;
-
-TRUNCATE TABLE TMP_CATE_FILTER;
+TRUNCATE TABLE TB_CATE_FILTER_TMP;
 
--- 브랜드 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+-- 카테고리별 브랜드 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -31,8 +11,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -87,8 +65,6 @@ SELECT SITE_CD
      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
                    ORDER BY FILTER_NM
                   )   AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT DISTINCT
                SITE_CD
@@ -154,7 +130,7 @@ FROM   (
 ;
 
 -- 사이즈 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -164,8 +140,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -223,8 +197,6 @@ SELECT SITE_CD
                                  ELSE 4
                             END, FILTER_NM
                   )   AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT DISTINCT
                SITE_CD
@@ -290,7 +262,7 @@ FROM   (
 ;
 
 -- 가격 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -300,8 +272,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -474,8 +444,6 @@ SELECT SITE_CD
      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
                    ORDER BY DISP_ORD
                    )  AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT SITE_CD
              , CATE_GB
@@ -540,7 +508,7 @@ FROM   (
 ;
 
 -- 연령대 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -550,8 +518,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -599,8 +565,6 @@ SELECT A.SITE_CD
      , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
                    ORDER BY CC.DISP_ORD
                   )   AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT DISTINCT
                SITE_CD
@@ -664,7 +628,7 @@ AND    CC.USE_YN = 'Y'
 ;
 
 -- 시즌 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -674,8 +638,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -722,8 +684,6 @@ SELECT A.SITE_CD
      , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
                    ORDER BY CC.DISP_ORD
                   )   AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT DISTINCT
                SITE_CD
@@ -787,7 +747,7 @@ AND    CC.USE_YN = 'Y'
 ;
 
 -- 색상 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -797,8 +757,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -851,8 +809,6 @@ SELECT A.SITE_CD
      , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
                    ORDER BY CC.DISP_ORD
                   )   AS DISP_ORD
-     , 0              AS REG_NO
-     , NOW()          AS REG_DT
 FROM   (
         SELECT DISTINCT
                SITE_CD
@@ -916,7 +872,7 @@ AND    CC.USE_YN = 'Y'
 ;
 
 -- 혜택 필터 생성
-INSERT INTO TMP_CATE_FILTER (
+INSERT INTO TB_CATE_FILTER_TMP (
        SITE_CD
      , CATE_GB
      , FORMAL_GB
@@ -926,8 +882,6 @@ INSERT INTO TMP_CATE_FILTER (
      , FILTER_CD
      , FILTER_NM
      , DISP_ORD
-     , REG_NO
-     , REG_DT
 )
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
@@ -940,21 +894,19 @@ WITH TAB_FILTER AS (
          , C4.CATE4_NO
          , C4.CATE5_NO
          , G.GOODS_CD
-         , G.FORMAL_GB       AS GOODS_FORMAL_GB /*상품의정상이월구분*/
-         , DFP.MIN_ORD_AMT
-         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
+         , GB.BENEFIT_GB
     FROM   TB_CATE_4SRCH C4
          , TB_CATE_GOODS CG
          , TB_GOODS G
          , TB_GOODS_STOCK GS
-         , TB_DELV_FEE_POLICY DFP
+         , TB_GOODS_BENEFIT GB
          , TB_BRAND B
          , TB_SITE_BRAND SB
     WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
     AND    CG.BRAND_GROUP_NO = 0
     AND    CG.GOODS_CD = G.GOODS_CD
     AND    CG.GOODS_CD = GS.GOODS_CD
-    AND    G.DELV_FEE_CD = DFP.DELV_FEE_CD
+    AND    CG.GOODS_CD = GB.GOODS_CD
     AND    G.BRAND_CD = B.BRAND_CD
     AND    B.BRAND_CD = SB.BRAND_CD
     AND    C4.SITE_CD = 'G000_10'
@@ -964,7 +916,6 @@ WITH TAB_FILTER AS (
     AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
     AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
     AND    GS.STOCK_QTY > 0 /*재고있는상품*/
-    AND    DFP.USE_YN = 'Y' /*사용하는배송비정책*/
     AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
     AND    SB.SITE_CD = 'G000_10'
     AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
@@ -987,81 +938,15 @@ SELECT SITE_CD
      , 0              AS REG_NO
      , NOW()          AS REG_DT
 FROM   (
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE5_NO       AS CATE_NO
-             , '10'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE5_NO IS NOT NULL
-        AND    B.CPN_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE4_NO       AS CATE_NO
-             , '10'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE4_NO IS NOT NULL
-        AND    B.CPN_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE3_NO       AS CATE_NO
-             , '10'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE3_NO IS NOT NULL
-        AND    B.CPN_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE2_NO       AS CATE_NO
-             , '10'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE2_NO IS NOT NULL
-        AND    B.CPN_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE1_NO       AS CATE_NO
-             , '10'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE1_NO IS NOT NULL
-        AND    B.CPN_YN = 'Y'
-        UNION ALL
         SELECT DISTINCT
                SITE_CD
              , CATE_GB
              , FORMAL_GB
              , BRAND_GROUP_NO
              , CATE5_NO       AS CATE_NO
-             , '20'           AS FILTER_CD
+             , BENEFIT_GB     AS FILTER_CD
         FROM   TAB_FILTER
         WHERE  CATE5_NO IS NOT NULL
-        AND    MIN_ORD_AMT <= CURR_PRICE
         UNION ALL
         SELECT DISTINCT
                SITE_CD
@@ -1069,10 +954,9 @@ FROM   (
              , FORMAL_GB
              , BRAND_GROUP_NO
              , CATE4_NO       AS CATE_NO
-             , '20'           AS FILTER_CD
+             , BENEFIT_GB     AS FILTER_CD
         FROM   TAB_FILTER
         WHERE  CATE4_NO IS NOT NULL
-        AND    MIN_ORD_AMT <= CURR_PRICE
         UNION ALL
         SELECT DISTINCT
                SITE_CD
@@ -1080,10 +964,9 @@ FROM   (
              , FORMAL_GB
              , BRAND_GROUP_NO
              , CATE3_NO       AS CATE_NO
-             , '20'           AS FILTER_CD
+             , BENEFIT_GB     AS FILTER_CD
         FROM   TAB_FILTER
         WHERE  CATE3_NO IS NOT NULL
-        AND    MIN_ORD_AMT <= CURR_PRICE
         UNION ALL
         SELECT DISTINCT
                SITE_CD
@@ -1091,10 +974,9 @@ FROM   (
              , FORMAL_GB
              , BRAND_GROUP_NO
              , CATE2_NO       AS CATE_NO
-             , '20'           AS FILTER_CD
+             , BENEFIT_GB     AS FILTER_CD
         FROM   TAB_FILTER
         WHERE  CATE2_NO IS NOT NULL
-        AND    MIN_ORD_AMT <= CURR_PRICE
         UNION ALL
         SELECT DISTINCT
                SITE_CD
@@ -1102,136 +984,15 @@ FROM   (
              , FORMAL_GB
              , BRAND_GROUP_NO
              , CATE1_NO       AS CATE_NO
-             , '20'           AS FILTER_CD
+             , BENEFIT_GB     AS FILTER_CD
         FROM   TAB_FILTER
         WHERE  CATE1_NO IS NOT NULL
-        AND    MIN_ORD_AMT <= CURR_PRICE
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE5_NO       AS CATE_NO
-             , '30'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE5_NO IS NOT NULL
-        AND    B.FREEGIFT_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE4_NO       AS CATE_NO
-             , '30'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE4_NO IS NOT NULL
-        AND    B.FREEGIFT_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE3_NO       AS CATE_NO
-             , '30'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE3_NO IS NOT NULL
-        AND    B.FREEGIFT_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE2_NO       AS CATE_NO
-             , '30'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE2_NO IS NOT NULL
-        AND    B.FREEGIFT_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               A.SITE_CD
-             , A.CATE_GB
-             , A.FORMAL_GB
-             , A.BRAND_GROUP_NO
-             , A.CATE1_NO       AS CATE_NO
-             , '30'             AS FILTER_CD
-        FROM   TAB_FILTER A
-             , TB_GOODS_BENEFIT B
-        WHERE  A.GOODS_CD = B.GOODS_CD
-        AND    A.CATE1_NO IS NOT NULL
-        AND    B.FREEGIFT_YN = 'Y'
-        UNION ALL
-        SELECT DISTINCT
-               SITE_CD
-             , CATE_GB
-             , FORMAL_GB
-             , BRAND_GROUP_NO
-             , CATE5_NO       AS CATE_NO
-             , '40'           AS FILTER_CD
-        FROM   TAB_FILTER
-        WHERE  CATE5_NO IS NOT NULL
-        AND    GOODS_FORMAL_GB = 'G009_10'
-        UNION ALL
-        SELECT DISTINCT
-               SITE_CD
-             , CATE_GB
-             , FORMAL_GB
-             , BRAND_GROUP_NO
-             , CATE4_NO       AS CATE_NO
-             , '40'           AS FILTER_CD
-        FROM   TAB_FILTER
-        WHERE  CATE4_NO IS NOT NULL
-        AND    GOODS_FORMAL_GB = 'G009_10'
-        UNION ALL
-        SELECT DISTINCT
-               SITE_CD
-             , CATE_GB
-             , FORMAL_GB
-             , BRAND_GROUP_NO
-             , CATE3_NO       AS CATE_NO
-             , '40'           AS FILTER_CD
-        FROM   TAB_FILTER
-        WHERE  CATE3_NO IS NOT NULL
-        AND    GOODS_FORMAL_GB = 'G009_10'
-        UNION ALL
-        SELECT DISTINCT
-               SITE_CD
-             , CATE_GB
-             , FORMAL_GB
-             , BRAND_GROUP_NO
-             , CATE2_NO       AS CATE_NO
-             , '40'           AS FILTER_CD
-        FROM   TAB_FILTER
-        WHERE  CATE2_NO IS NOT NULL
-        AND    GOODS_FORMAL_GB = 'G009_10'
-        UNION ALL
-        SELECT DISTINCT
-               SITE_CD
-             , CATE_GB
-             , FORMAL_GB
-             , BRAND_GROUP_NO
-             , CATE1_NO       AS CATE_NO
-             , '40'           AS FILTER_CD
-        FROM   TAB_FILTER
-        WHERE  CATE1_NO IS NOT NULL
-        AND    GOODS_FORMAL_GB = 'G009_10'
-    ) Z
+       ) Z
 ;
 
 TRUNCATE TABLE TB_CATE_FILTER;
 
 INSERT INTO TB_CATE_FILTER
 SELECT *
-FROM   TMP_CATE_FILTER
+FROM   TB_CATE_FILTER_TMP
 ;