Prechádzať zdrojové kódy

Merge branch 'master' of http://112.172.147.34:4936/style24/style24.doc

swkim 5 rokov pred
rodič
commit
3d4a3bbd50

BIN
산출물/2.분석/01.마스터테이블(로딩용)/[신세계아이앤씨] 알림톡 템플릿 등록 양식_스타일24_20210520(수정).xlsx


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

@@ -2813,6 +2813,12 @@ INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_206', '회원-기본LMS안내
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_207', '회원-휴면계정전환예정', null, 'Y', 207, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_208', '회원-개인정보 이용내역', NULL, 'Y', 208, 1,  NOW(), 1,  NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_209', '회원-마케팅 정보 수신동의 내역 ', NULL, 'Y', 209, 1,  NOW(), 1,  NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_210', '회원-생일쿠폰 다운로드 안내', null, 'Y', 210, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_211', '회원-이달의 등급 혜택 안내', null, 'Y', 211, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_212', '회원-휴면/미접속자 방어쿠폰', null, 'Y', 212, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_213', '회원-상품권소멸예정', null, 'Y', 213, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_214', '회원-쿠폰소멸예정', null, 'Y', 214, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_215', '회원-포인트소멸예정', null, 'Y', 215, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_301', '주문-주문안내', NULL, 'Y', 301, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_302', '주문-무통장입금안내', NULL, 'Y', 302, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_303', '주문-결품예정안내', NULL, 'Y', 303, 1, NOW(), 1, NOW());
@@ -3000,6 +3006,7 @@ INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_10', '회원가입', NULL, 'Y',
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_11', '생일기념발행', NULL, 'Y', 11, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_12', '결혼기념일발행', NULL, 'Y', 12, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_13', '회원등급변경', NULL, 'Y', 13, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_14', '휴면/미접속 방어쿠폰', null, 'Y', 14, 1, NOW(), 1, NOW())
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_20', '결품안내지연', NULL, 'Y', 20, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_21', '배송지연', NULL, 'Y', 21, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G068', 'G068_22', '오배송', NULL, 'Y', 22, 1, NOW(), 1, NOW());
@@ -4112,7 +4119,8 @@ CREATE TABLE TB_EXTMALL_ORDER_UPLOAD
   RECIP_TELNO        VARCHAR(20) COMMENT '수령자전화번호. SHOPLINKER_ORDER.RECEIVE_TEL',
   -- RECIP_EMAIL        VARCHAR(100) COMMENT '수령자이메일',
   RECIP_ZIPCODE      VARCHAR(6) COMMENT '수령자우편번호. SHOPLINKER_ORDER.RECEIVE_ZIPCODE',
-  RECIP_ADDR         VARCHAR(300) COMMENT '수령자주소. SHOPLINKER_ORDER.RECEIVE_ADDR',
+  RECIP_BASE_ADDR    VARCHAR(200) COMMENT '수령자기본주소. SHOPLINKER_ORDER.RECEIVE_ADDR',
+  RECIP_DTL_ADDR     VARCHAR(200) COMMENT '수령자상세주소. SHOPLINKER_ORDER.RECEIVE_ADDR',
   DELV_MEMO          VARCHAR(1000) COMMENT '배송메모. SHOPLINKER_ORDER.DELIVERY_MSG',
   UPLOAD_STAT        VARCHAR(20) DEFAULT '00' NOT NULL COMMENT '업로드상태(공통코드G021)',
   UPLOAD_FAIL_CD     VARCHAR(20) COMMENT '업로드실패코드(공통코드G022)',
@@ -10470,8 +10478,9 @@ CREATE TABLE TB_OPTION (
   PRODUCT_NO     INT UNSIGNED      NULL COMMENT 'ProductNo(WMS)',
   PRODUCT_CODE   VARCHAR(50)       NULL COMMENT 'ProductCode(WMS)',
   BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
-  STORE_STOCK_QTY SMALLINT         DEFAULT 0 NOT NULL comment '매장재고수량',
   CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
+  STORE_STOCK_QTY SMALLINT         DEFAULT 0 NOT NULL comment '매장재고수량',
+  STORE_MAX_QTY  SMALLINT          DEFAULT 0 NOT NULL comment '매장별최대재고수량(자사상품만사용)',
   ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격', -- 추가가격
   SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
   DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
@@ -10518,6 +10527,7 @@ CREATE TABLE TB_OPTION_HST (
   BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
   CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
   STORE_STOCK_QTY SMALLINT         DEFAULT 0 NOT NULL comment '매장재고수량',
+  STORE_MAX_QTY  SMALLINT          DEFAULT 0 NOT NULL comment '매장별최대재고수량(자사상품만사용)',
   ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격', -- 추가가격
   SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
   DISP_ORD       SMALLINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
@@ -10609,11 +10619,12 @@ CREATE TABLE TB_OPTION_SYNC (
   BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
   CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
   STORE_STOCK_QTY SMALLINT         NOT NULL DEFAULT 0 COMMENT '매장재고수량',
+  STORE_MAX_QTY  SMALLINT          NOT NULL DEFAULT 0 COMMENT '매장별최대재고수량(자사상품만사용)',
   ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격', -- 추가가격
   SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
   DISP_ORD       TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
   DISP_YN        CHAR(1)           NOT NULL DEFAULT 'Y' COMMENT '표시여부', -- 표시여부
-  ERP_STOCK_LINK_YN CHAR(1)           NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
+  ERP_STOCK_LINK_YN CHAR(1)        NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
   REG_NO         INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
   REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
   UPD_NO         INT UNSIGNED      NOT NULL COMMENT '수정자번호', -- 수정자번호
@@ -10640,6 +10651,7 @@ CREATE TABLE TB_OPTION_SYNC_TMP (
   BASE_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
   CURR_STOCK_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
   STORE_STOCK_QTY SMALLINT         NOT NULL DEFAULT 0 COMMENT '매장재고수량',
+  STORE_MAX_QTY  SMALLINT          NOT NULL DEFAULT 0 COMMENT '매장별최대재고수량(자사상품만사용)',
   ADD_PRICE      INT               NOT NULL DEFAULT 0 COMMENT '추가가격', -- 추가가격
   SOLDOUT_YN     CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
   DISP_ORD       TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
@@ -11560,58 +11572,150 @@ ALTER TABLE TB_STOCK_SYNC_BASE
 ################################################################################
 #재고연동
 ################################################################################
-DROP TABLE IF EXISTS TB_STOCK_SYNC RESTRICT;
-CREATE TABLE TB_STOCK_SYNC (
-  GOODS_CD          VARCHAR(20)       NOT NULL COMMENT '상품코드', -- 상품코드
-  OPT_CD            INT UNSIGNED      NOT NULL COMMENT '옵션번호', -- 옵션번호
-  BASE_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
-  CURR_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
-  SOLDOUT_YN        CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
-  DISP_ORD          TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
-  ERP_STOCK_LINK_YN CHAR(1)           NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
-  REG_NO            INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
-  REG_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
-  UPD_NO            INT UNSIGNED      NOT NULL COMMENT '수정자번호', -- 수정자번호
-  UPD_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
+#DROP TABLE IF EXISTS TB_STOCK_SYNC RESTRICT;
+#CREATE TABLE TB_STOCK_SYNC (
+#  GOODS_CD          VARCHAR(20)       NOT NULL COMMENT '상품코드', -- 상품코드
+#  OPT_CD            INT UNSIGNED      NOT NULL COMMENT '옵션번호', -- 옵션번호
+#  BASE_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
+#  CURR_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
+#  SOLDOUT_YN        CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
+#  DISP_ORD          TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
+#  ERP_STOCK_LINK_YN CHAR(1)           NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
+#  REG_NO            INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
+#  REG_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
+#  UPD_NO            INT UNSIGNED      NOT NULL COMMENT '수정자번호', -- 수정자번호
+#  UPD_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
+#)
+#COMMENT '재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
+#
+#-- 재고연동
+#ALTER TABLE TB_STOCK_SYNC
+#  ADD CONSTRAINT PK_STOCK_SYNC -- 재고연동 기본키
+#    PRIMARY KEY (
+#      GOODS_CD, -- 상품코드
+#      OPT_CD    -- 옵션번호
+#    );
+#
+    
+################################################################################
+#재고연동 TEMP
+################################################################################
+#DROP TABLE IF EXISTS TB_STOCK_SYNC_TEMP RESTRICT;
+#CREATE TABLE TB_STOCK_SYNC_TEMP (
+#  GOODS_CD          VARCHAR(20)       NOT NULL COMMENT '상품코드', -- 상품코드
+#  OPT_CD            INT UNSIGNED      NOT NULL COMMENT '옵션번호', -- 옵션번호
+#  BASE_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
+#  CURR_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
+#  SOLDOUT_YN        CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
+#  DISP_ORD          TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
+#  ERP_STOCK_LINK_YN CHAR(1)           NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
+#  REG_NO            INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
+#  REG_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
+#  UPD_NO            INT UNSIGNED      NOT NULL COMMENT '수정자번호', -- 수정자번호
+#  UPD_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
+#)
+#COMMENT '재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
+#
+#-- 재고연동
+#ALTER TABLE TB_STOCK_SYNC_TEMP
+#  ADD CONSTRAINT PK_STOCK_SYNC -- 재고연동 기본키
+#    PRIMARY KEY (
+#      GOODS_CD, -- 상품코드
+#      OPT_CD    -- 옵션번호
+#    );
+#    
+    
+################################################################################
+#WMS 재고  
+################################################################################
+DROP TABLE IF EXISTS TB_WMS_STOCK RESTRICT;
+CREATE TABLE TB_WMS_STOCK (
+  PRODUCT_NO       INT UNSIGNED      NOT NULL COMMENT 'ProductNo(WMS)',
+  SKU_CODE         VARCHAR(50)       NOT NULL COMMENT '옵션코드',
+  LOC_QTY          SMALLINT          NOT NULL DEFAULT 0 COMMENT '위치재고수량',
+  PICKING_QTY      SMALLINT          NOT NULL DEFAULT 0 COMMENT '피킹수량',
+  EOUT_PICKING_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT 'EOUT피킹수량',
+  UPD_DT           TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일'
 )
-COMMENT '재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
+COMMENT 'WMS재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
 
 -- 재고연동
-ALTER TABLE TB_STOCK_SYNC
-  ADD CONSTRAINT PK_STOCK_SYNC -- 재고연동 기본키
+ALTER TABLE TB_WMS_STOCK
+  ADD CONSTRAINT PK_WMS_STOCK
     PRIMARY KEY (
-      GOODS_CD, -- 상품코드
-      OPT_CD    -- 옵션번호
+      PRODUCT_NO,
+      SKU_CODE   
     );
-
-    
 ################################################################################
-#재고연동 TEMP
+#WMS 재고 HST  
 ################################################################################
-DROP TABLE IF EXISTS TB_STOCK_SYNC_TEMP RESTRICT;
-CREATE TABLE TB_STOCK_SYNC_TEMP (
-  GOODS_CD          VARCHAR(20)       NOT NULL COMMENT '상품코드', -- 상품코드
-  OPT_CD            INT UNSIGNED      NOT NULL COMMENT '옵션번호', -- 옵션번호
-  BASE_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '기준재고(안전재고)수량', -- 기준재고(안전재고)수량
-  CURR_STOCK_QTY    SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '현재고수량', -- 현재고수량
-  SOLDOUT_YN        CHAR(1)           NOT NULL DEFAULT 'N' COMMENT '결품여부', -- 결품여부
-  DISP_ORD          TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
-  ERP_STOCK_LINK_YN CHAR(1)           NOT NULL DEFAULT 'N' COMMENT 'ERP재고연계여부', -- ERP재고연계여부
-  REG_NO            INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
-  REG_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
-  UPD_NO            INT UNSIGNED      NOT NULL COMMENT '수정자번호', -- 수정자번호
-  UPD_DT            TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
+DROP TABLE IF EXISTS TB_WMS_STOCK_HST RESTRICT;
+CREATE TABLE TB_WMS_STOCK_HST (
+  JOBDATE          VARCHAR(14)   NOT NULL COMMENT '작업일시',
+  PRODUCT_NO       INT UNSIGNED      NOT NULL COMMENT 'ProductNo(WMS)',
+  SKU_CODE         VARCHAR(50)       NOT NULL COMMENT '옵션코드',
+  LOC_QTY          SMALLINT          NOT NULL DEFAULT 0 COMMENT '위치재고수량',
+  PICKING_QTY      SMALLINT          NOT NULL DEFAULT 0 COMMENT '피킹수량',
+  EOUT_PICKING_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT 'EOUT피킹수량'
 )
-COMMENT '재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
+COMMENT 'WMS재고연동이력. 재고 연동 시 삭제 후 등록에 의한 발생';
 
 -- 재고연동
-ALTER TABLE TB_STOCK_SYNC_TEMP
-  ADD CONSTRAINT PK_STOCK_SYNC -- 재고연동 기본키
-    PRIMARY KEY (
-      GOODS_CD, -- 상품코드
-      OPT_CD    -- 옵션번호
-    );
+CREATE INDEX IX_WMS_STOCK_HST_01
+  ON TB_WMS_STOCK_HST(
+    JOBDATE  ASC,
+    PRODUCT_NO ASC,
+    SKU_CODE ASC
+  );
+
+################################################################################
+#매장별 재고  
+################################################################################
+DROP TABLE IF EXISTS TB_SHOP_STOCK RESTRICT;
+CREATE TABLE TB_SHOP_STOCK (
+  SUPPLY_COMP_CD   VARCHAR(20) NOT NULL COMMENT '공급업체코드',
+  CD_SHOP          VARCHAR(20) NOT NULL COMMENT '매장코드',
+  CD_STYLE         VARCHAR(20) NOT NULL COMMENT '스타일코드',
+  CD_COLOR         VARCHAR(20) NOT NULL COMMENT '컬러',
+  CD_SIZE          VARCHAR(20) NOT NULL COMMENT '사이즈',
+  QT_STOCK         INT DEFAULT 0 NOT NULL COMMENT '재고수량',
+  OPT_CD           VARCHAR(200)      NOT NULL COMMENT '온라인옵션코드', -- 옵션코드
+  OPT_CD1          VARCHAR(200)      NOT NULL COMMENT '온라인옵션코드1(자사:COLOR_CD, 입점:옵션명1)',
+  STORE_STOCK_QTY  INT DEFAULT 0 NOT NULL COMMENT '온라인재고수량(출고처별 판매비율 적용)',
+  UPD_DT           TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+  PRIMARY KEY (SUPPLY_COMP_CD, CD_SHOP, CD_STYLE, CD_COLOR, CD_SIZE)
+)
+COMMENT '매장별재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
+
+################################################################################
+#매장별 재고 HST
+################################################################################
+DROP TABLE IF EXISTS TB_SHOP_STOCK_HST RESTRICT;
+CREATE TABLE TB_SHOP_STOCK_HST (
+  JOBDATE        VARCHAR(14) NOT NULL COMMENT '작업일시',	
+ SUPPLY_COMP_CD   VARCHAR(20) NOT NULL COMMENT '공급업체코드',
+  CD_SHOP          VARCHAR(20) NOT NULL COMMENT '매장코드',
+  CD_STYLE         VARCHAR(20) NOT NULL COMMENT '스타일코드',
+  CD_COLOR         VARCHAR(20) NOT NULL COMMENT '컬러',
+  CD_SIZE          VARCHAR(20) NOT NULL COMMENT '사이즈',
+  QT_STOCK         INT DEFAULT 0 NOT NULL COMMENT '재고수량',
+  OPT_CD           VARCHAR(200)      NOT NULL COMMENT '온라인옵션코드', -- 옵션코드
+  OPT_CD1          VARCHAR(200)      NOT NULL COMMENT '온라인옵션코드1(자사:COLOR_CD, 입점:옵션명1)',
+  STORE_STOCK_QTY  INT DEFAULT 0 NOT NULL COMMENT '온라인재고수량(출고처별 판매비율 적용)'
+)
+COMMENT '매장별재고연동이력. 재고 연동 시 삭제 후 등록에 의한 발생';
+
+CREATE INDEX IX_SHOP_STOCK_HST_01
+  ON TB_SHOP_STOCK_HST(
+    JOBDATE  ASC,
+    SUPPLY_COMP_CD ASC, 
+    CD_SHOP ASC, 
+    CD_STYLE ASC, 
+    CD_COLOR ASC, 
+    CD_SIZE  ASC
     
+  );
+  
 ################################################################################
 #상품조회이력
 ################################################################################
@@ -15452,8 +15556,10 @@ CREATE TABLE TB_ORDER_RECALL_EXCEPTION
 	DATE_LAST_MODIFIED TIMESTAMP NULL COMMENT '수정일자',
 	CS_ADD_FEE INT NULL COMMENT '추가비용',
 	CS_MEMO VARCHAR(2000) NULL COMMENT 'C/S메모',
+	COD_FEE INT NULL COMMENT '착불비',
 	REG_NO INT UNSIGNED NOT NULL COMMENT '등록자NO',
 	REG_DT TIMESTAMP NOT NULL COMMENT '등록일시'	
+	
 )
 COMMENT '회수예외 (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 
@@ -15830,3 +15936,22 @@ CREATE TABLE SHOPLINKER_ORDER
   INDEX IX_SHOPLINKER_ORDER_03 (MALL_ORDER_ID)
 )
 COMMENT '샵링커주문. 샵링커 주문수집에 의한 발생';
+
+################################################################################
+# 네이버페이 배치 실패 로그
+################################################################################
+DROP TABLE IF EXISTS TB_NAVERPAY_FAIL_LOG RESTRICT;
+CREATE TABLE TB_NAVERPAY_FAIL_LOG
+(
+    ERROR_SQ        INT AUTO_INCREMENT COMMENT '에러 번호' PRIMARY KEY,
+    ERROR_REASON    VARCHAR(100)     NOT NULL COMMENT '에러 발생 위치',
+    OPT_CD          VARCHAR(50)      NULL COMMENT '요청코드',
+    RESULT_CD       VARCHAR(20)      NULL COMMENT '결과코드',
+    RESULT_MSG      VARCHAR(400)     NULL COMMENT '결과 메세지',
+    SITE_CD         VARCHAR(40)      NULL COMMENT 'MALL_ID',
+    ACCESS_LICENSE  VARCHAR(200)     NULL COMMENT '라이센스키',
+    SECRET_KEY      VARCHAR(200)     NULL COMMENT 'SECRET_KEY',
+    REG_NO          INT              NULL COMMENT '등록자',
+    REG_DT          TIMESTAMP        NULL COMMENT '등록날짜'
+)
+    COMMENT '네이버페이_실패_로그';

BIN
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V3.4)-20210521.xlsx


BIN
산출물/3.설계/ST24_TSIT-D302-배치목록(V0.1)-20210524.xlsx


+ 3861 - 0
산출물/4.구축/데이터처리/10.카테고리필터생성(최종)_배치적용해야함.sql

@@ -0,0 +1,3861 @@
+TRUNCATE TABLE TB_CATE_FILTER_TMP;
+
+-- 브랜드별 / 카테고리번호 0 / 정상이월 구분 o 
+-- 사이즈 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
+         , S.OPT_CD2                       AS FILTER_NM
+    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 = 0
+--     and b.BRAND_GROUP_NO = 24555
+    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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT distinct SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'SIZE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
+                                 WHEN FILTER_CD LIKE 'B%' THEN 2
+                                 WHEN FILTER_CD LIKE 'S%' THEN 3
+                                 ELSE 4
+                            END, FILTER_NM
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+             , FILTER_NM
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , 0       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+    ) Z
+    ;
+
+-- 가격 필터 생성(브랜드별 전체)
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') 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 b.brand_group_no = 19706
+    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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+, TAB_PRICE AS (
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS  FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , 0        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+	UNION ALL 
+	SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS  FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , 0        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  FORMAL_GB IN ('G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+)
+SELECT DISTINCT
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'PRICE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                   )  AS DISP_ORD
+FROM   (
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE1         AS FILTER_CD
+             , PRICE1         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE1 > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE2         AS FILTER_CD
+             , PRICE2         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE2 > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE3         AS FILTER_CD
+             , PRICE3         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE3 > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE4         AS FILTER_CD
+             , PRICE4         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE4 > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE5         AS FILTER_CD
+             , PRICE5         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE5 > 0
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE6         AS FILTER_CD
+             , PRICE6         AS FILTER_NM
+        FROM   TAB_PRICE
+        WHERE PRICE6 > 0
+       ) Z
+;
+
+
+-- 연령대 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.AGE_GRP_CD      AS FILTER_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 = 0
+--     and B.BRAND_GROUP_NO = 19706
+    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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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 IS NOT NULL
+    AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'AGE'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0 AS CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G023'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 시즌 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.SEASON_CD       AS FILTER_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 = 0
+--     and B.BRAND_GROUP_NO = 19706
+    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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'SEASON'         AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM         AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0 AS CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G006'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 색상 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , C.COLOR_GRP_CD    AS FILTER_CD
+    FROM   TB_CATE_4SRCH C4
+         , TB_CATE_GOODS CG
+         , TB_GOODS G
+         , TB_GOODS_STOCK GS
+         , TB_OPTION O
+         , TB_COLOR C
+         , TB_BRAND B
+         , TB_SITE_BRAND SB
+    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+--     AND    CG.BRAND_GROUP_NO = 0
+--     and B.BRAND_GROUP_NO = 19706
+    AND    CG.GOODS_CD = G.GOODS_CD
+    AND    CG.GOODS_CD = GS.GOODS_CD
+    AND    CG.GOODS_CD = O.GOODS_CD
+    AND    O.OPT_CD1 = C.COLOR_CD
+    AND    G.BRAND_CD = B.BRAND_CD
+    AND    B.BRAND_CD = SB.BRAND_CD
+    AND    C4.SITE_CD = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+    AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'COLOR'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_DESC       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0 as CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G072'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 혜택 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.GOODS_CD
+         , GB.BENEFIT_GB
+    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 = 0
+--     and B.BRAND_GROUP_NO = 19706
+    AND    CG.GOODS_CD = G.GOODS_CD
+    AND    CG.GOODS_CD = GS.GOODS_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'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT distinct SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , 0 as CATE_NO
+     , 'BENEFIT'        AS FILTER_GB
+     , FILTER_CD
+     , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
+            WHEN FILTER_CD = '20' THEN '무료배송'
+            WHEN FILTER_CD = '30' THEN '사은품'
+            WHEN FILTER_CD = '40' THEN '신상'
+			WHEN FILTER_CD = '50' THEN '총알배송'
+       END              AS FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL 
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , 0       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+       ) Z
+;
+
+INSERT INTO TB_CATE_FILTER
+SELECT DISTINCT SITE_CD
+    , CATE_GB
+    , FORMAL_GB
+    , BRAND_GROUP_NO
+    , CATE_NO
+    , FILTER_GB
+    , FILTER_CD
+    , FILTER_NM
+    , DISP_ORD
+    , 12 AS REG_NO
+    , NOW() AS REG_DT
+FROM   TB_CATE_FILTER_TMP
+;
+
+
+-- 브랜드그룹번호 0 / 카테고리별 / 정상이월 구분 o 
+-- 카테고리별 브랜드 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , B.BRAND_GROUP_NO  AS FILTER_CD
+         , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+                BG.BRAND_GROUP_ENM
+           ELSE
+                BG.BRAND_GROUP_KNM
+           END               AS FILTER_NM
+    FROM   TB_CATE_4SRCH C4
+         , TB_CATE_GOODS CG
+         , TB_GOODS G
+         , TB_GOODS_STOCK GS
+         , TB_BRAND B
+         , TB_SITE_BRAND SB
+         , TB_BRAND_GROUP BG
+    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+    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    B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+    AND    C4.SITE_CD = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+    AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+)
+SELECT SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'BRAND'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_NM
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+             , FILTER_NM
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+    ) Z
+;
+
+-- 사이즈 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
+         , S.OPT_CD2                       AS FILTER_NM
+    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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'SIZE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
+                                 WHEN FILTER_CD LIKE 'B%' THEN 2
+                                 WHEN FILTER_CD LIKE 'S%' THEN 3
+                                 ELSE 4
+                            END, FILTER_NM
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+             , FILTER_NM
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+    ) Z
+;
+
+-- 가격 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') 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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+, TAB_PRICE AS (
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE1_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE1_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE2_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE2_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE3_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE3_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE4_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE4_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE5_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE5_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+           ) Z
+	UNION ALL 
+	SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE1_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE1_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE2_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE2_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE3_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE3_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE4_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE4_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE5_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE5_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+           ) Z
+)
+SELECT DISTINCT
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'PRICE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                   )  AS DISP_ORD
+FROM   (
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE1         AS FILTER_CD
+             , PRICE1         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE2         AS FILTER_CD
+             , PRICE2         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE3         AS FILTER_CD
+             , PRICE3         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE4         AS FILTER_CD
+             , PRICE4         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE5         AS FILTER_CD
+             , PRICE5         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE6         AS FILTER_CD
+             , PRICE6         AS FILTER_NM
+        FROM   TAB_PRICE
+       ) Z
+;
+
+-- 연령대 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.AGE_GRP_CD      AS FILTER_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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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 IS NOT NULL
+    AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'AGE'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G023'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 시즌 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.SEASON_CD       AS FILTER_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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'SEASON'         AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM         AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G006'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 색상 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , C.COLOR_GRP_CD    AS FILTER_CD
+    FROM   TB_CATE_4SRCH C4
+         , TB_CATE_GOODS CG
+         , TB_GOODS G
+         , TB_GOODS_STOCK GS
+         , TB_OPTION O
+         , TB_COLOR C
+         , 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    CG.GOODS_CD = O.GOODS_CD
+    AND    O.OPT_CD1 = C.COLOR_CD
+    AND    G.BRAND_CD = B.BRAND_CD
+    AND    B.BRAND_CD = SB.BRAND_CD
+    AND    C4.SITE_CD = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+    AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'COLOR'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_DESC       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G072'
+AND    CC.USE_YN = 'Y'
+;
+
+-- 혜택 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , CG.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.GOODS_CD
+         , GB.BENEFIT_GB
+    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 = 0
+    AND    CG.GOODS_CD = G.GOODS_CD
+    AND    CG.GOODS_CD = GS.GOODS_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'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'BENEFIT'        AS FILTER_GB
+     , FILTER_CD
+     , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
+            WHEN FILTER_CD = '20' THEN '무료배송'
+            WHEN FILTER_CD = '30' THEN '사은품'
+            WHEN FILTER_CD = '40' THEN '신상'
+			WHEN FILTER_CD = '50' THEN '총알배송'
+       END              AS FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE5_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE4_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE3_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE2_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE1_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL 
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_20' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE5_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_20' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE4_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_20' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE3_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_20' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE2_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_20' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE1_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+       ) Z
+;
+
+TRUNCATE TABLE TB_CATE_FILTER;
+
+INSERT INTO TB_CATE_FILTER
+SELECT DISTINCT SITE_CD
+    , CATE_GB
+    , FORMAL_GB
+    , BRAND_GROUP_NO
+    , CATE_NO
+    , FILTER_GB
+    , FILTER_CD
+    , FILTER_NM
+    , DISP_ORD
+    , 2 AS REG_NO
+    , NOW() AS REG_DT
+FROM   TB_CATE_FILTER_TMP
+;
+
+
+-- 브랜드별/ 카테고리별/ 정상이월 구분 o 
+-- 사이즈 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
+         , S.OPT_CD2                       AS FILTER_NM
+    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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'SIZE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
+                                 WHEN FILTER_CD LIKE 'B%' THEN 2
+                                 WHEN FILTER_CD LIKE 'S%' THEN 3
+                                 ELSE 4
+                            END, FILTER_NM
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+             , FILTER_NM
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+    ) Z
+    ;
+    
+    
+   -- 가격 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') 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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+, TAB_PRICE AS (
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE1_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE1_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE2_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE2_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE3_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE3_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE4_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE4_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_10' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE5_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE5_NO IS NOT NULL
+            AND  FORMAL_GB IN ('G009_10','G009_20')
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+           ) Z
+           
+	UNION ALL
+	SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE1_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE1_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE2_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE2_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE3_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE3_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE4_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE4_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 'G009_20' AS FORMAL_GB
+         , BRAND_GROUP_NO
+         , CATE_NO
+         , 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 SITE_CD
+                 , CATE_GB
+                 , BRAND_GROUP_NO
+                 , CATE5_NO        AS CATE_NO
+                 , 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   TAB_FILTER
+            WHERE  CATE5_NO IS NOT NULL
+            AND  FORMAL_GB = 'G009_20'
+            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+           ) Z
+)
+SELECT DISTINCT
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'PRICE'        AS FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                   )  AS DISP_ORD
+FROM   (
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE1         AS FILTER_CD
+             , PRICE1         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE2         AS FILTER_CD
+             , PRICE2         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE3         AS FILTER_CD
+             , PRICE3         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE4         AS FILTER_CD
+             , PRICE4         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE5         AS FILTER_CD
+             , PRICE5         AS FILTER_NM
+        FROM   TAB_PRICE
+        UNION ALL
+        SELECT SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , PRICE6         AS FILTER_CD
+             , PRICE6         AS FILTER_NM
+        FROM   TAB_PRICE
+       ) Z
+;
+
+
+-- 연령대 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.AGE_GRP_CD      AS FILTER_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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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 IS NOT NULL
+    AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'AGE'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G023'
+AND    CC.USE_YN = 'Y'
+;
+
+
+-- 시즌 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.SEASON_CD       AS FILTER_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 = 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 = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'SEASON'         AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_NM         AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G006'
+AND    CC.USE_YN = 'Y'
+;
+
+
+-- 색상 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , C.COLOR_GRP_CD    AS FILTER_CD
+    FROM   TB_CATE_4SRCH C4
+         , TB_CATE_GOODS CG
+         , TB_GOODS G
+         , TB_GOODS_STOCK GS
+         , TB_OPTION O
+         , TB_COLOR C
+         , 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    CG.GOODS_CD = O.GOODS_CD
+    AND    O.OPT_CD1 = C.COLOR_CD
+    AND    G.BRAND_CD = B.BRAND_CD
+    AND    B.BRAND_CD = SB.BRAND_CD
+    AND    C4.SITE_CD = 'G000_10'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+    AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT A.SITE_CD
+     , A.CATE_GB
+     , A.FORMAL_GB
+     , A.BRAND_GROUP_NO
+     , A.CATE_NO
+     , 'COLOR'          AS FILTER_GB
+     , A.FILTER_CD
+     , CC.CD_DESC       AS FILTER_NM
+     , 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
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE_NO
+             , FILTER_CD
+        FROM   (
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , 'G009_10' AS FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB IN ('G009_10','G009_20')
+                UNION ALL 
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                AND  FORMAL_GB  = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE4_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE4_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE3_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE3_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE2_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE2_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+                UNION ALL
+                SELECT SITE_CD
+                     , CATE_GB
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE1_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE1_NO IS NOT NULL
+                AND  FORMAL_GB = 'G009_20'
+               ) Z
+        WHERE  CATE_NO IS NOT NULL
+       ) A
+     , TB_COMMON_CODE CC
+WHERE  A.FILTER_CD = CC.CD
+AND    CC.CD_GB = 'G072'
+AND    CC.USE_YN = 'Y'
+;
+
+
+-- 혜택 필터 생성
+INSERT INTO TB_CATE_FILTER_TMP (
+       SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , FILTER_GB
+     , FILTER_CD
+     , FILTER_NM
+     , DISP_ORD
+)
+WITH TAB_FILTER AS (
+    SELECT C4.SITE_CD
+         , C4.CATE_GB
+         , G.FORMAL_GB
+         , B.BRAND_GROUP_NO
+         , C4.CATE1_NO
+         , C4.CATE2_NO
+         , C4.CATE3_NO
+         , C4.CATE4_NO
+         , C4.CATE5_NO
+         , G.GOODS_CD
+         , GB.BENEFIT_GB
+    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 = 0
+    AND    CG.GOODS_CD = G.GOODS_CD
+    AND    CG.GOODS_CD = GS.GOODS_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'
+    AND    C4.CATE_GB = 'G032_101'
+    AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+    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    B.USE_YN = 'Y' /*사용하는 브랜드*/
+    AND    SB.SITE_CD = 'G000_10'
+    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+)
+SELECT SITE_CD
+     , CATE_GB
+     , FORMAL_GB
+     , BRAND_GROUP_NO
+     , CATE_NO
+     , 'BENEFIT'        AS FILTER_GB
+     , FILTER_CD
+     , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
+            WHEN FILTER_CD = '20' THEN '무료배송'
+            WHEN FILTER_CD = '30' THEN '사은품'
+            WHEN FILTER_CD = '40' THEN '신상'
+			WHEN FILTER_CD = '50' THEN '총알배송'
+       END              AS FILTER_NM
+     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+                   ORDER BY FILTER_CD
+                  )   AS DISP_ORD
+FROM   (
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE5_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE4_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE3_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE2_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , 'G009_10' AS FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE1_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB IN ('G009_10','G009_20')
+        UNION ALL 
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE5_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE4_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE4_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE3_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE3_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE2_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE2_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+        UNION ALL
+        SELECT DISTINCT
+               SITE_CD
+             , CATE_GB
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE1_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE1_NO IS NOT NULL
+        AND  FORMAL_GB = 'G009_20'
+       ) Z
+;
+
+TRUNCATE TABLE TB_CATE_FILTER;
+
+INSERT INTO TB_CATE_FILTER
+SELECT DISTINCT SITE_CD
+    , CATE_GB
+    , FORMAL_GB
+    , BRAND_GROUP_NO
+    , CATE_NO
+    , FILTER_GB
+    , FILTER_CD
+    , FILTER_NM
+    , DISP_ORD
+    , 12 AS REG_NO
+    , NOW() AS REG_DT
+FROM   TB_CATE_FILTER_TMP
+;
+
+
+
+
+CREATE TABLE IF NOT EXISTS TB_CATE_FILTER2 LIKE TB_CATE_FILTER;
+DROP  TABLE TB_CATE_FILTER2;

BIN
산출물/4.구축/미작업내역_20210526.xlsx