Explorar el Código

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

gagamel hace 5 años
padre
commit
e60ef14a15

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


+ 109 - 32
산출물/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());
@@ -2828,6 +2834,7 @@ INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_503', '교환-교환접수완
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_504', '교환-교환회수완료', NULL, 'Y', 504, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_505', '교환-교환발송안내', NULL, 'Y', 505, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_601', '마케팅-생일쿠폰 다운로드 안내', NULL, 'Y', 601, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G054', 'G054_701', '재입고알림', NULL, 'Y', 701, 1, NOW(), 1, NOW());
 
 INSERT INTO TB_COMMON_CODE VALUES ('ROOT', 'G055', '접촉방법', NULL, 'Y', 55, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G055', 'G055_10', 'SMS', NULL, 'Y', 10, 1, NOW(), 1, NOW());
@@ -3000,6 +3007,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());
@@ -3456,6 +3464,11 @@ INSERT INTO TB_COMMON_CODE VALUES ('G232', 'G232_12', '중지', NULL, 'Y', 12, 2
 INSERT INTO TB_COMMON_CODE VALUES ('G232', 'G232_13', '종료', NULL, 'Y', 13, 2, NOW(), 2, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G232', 'G232_14', '삭제', NULL, 'Y', 14, 2, NOW(), 2, NOW());
 
+INSERT INTO TB_COMMON_CODE VALUES ('ROOT', 'G233', '주문서쿠폰구분', NULL, 'Y', 233, 11, NOW(), 11, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G233', 'G233_00', '일반쿠폰', NULL, 'Y', 1, 11, NOW(), 11, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G233', 'G233_10', '시리얼쿠폰', NULL, 'Y', 2, 11, NOW(), 11, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G233', 'G233_20', '랜덤쿠폰', NULL, 'Y', 3, 11, NOW(), 11, NOW());
+
 INSERT INTO TB_COMMON_CODE VALUES ('ROOT', 'G240', '쿠폰할인방식', NULL, 'Y', 230, 2, NOW(), 2, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G240', 'G240_10', '할인금액', NULL, 'Y', 10, 2, NOW(), 2, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G240', 'G240_11', '할인율', NULL, 'Y', 11, 2, NOW(), 2, NOW());
@@ -3549,6 +3562,7 @@ INSERT INTO TB_COMMON_CODE VALUES ('G940', '16', '축협은행', NULL, 'Y', 16,
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '20', '우리은행', NULL, 'Y', 20, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '21', '신한은행(구조흥)', NULL, 'Y', 21, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '23', 'SC은행(구제일)', NULL, 'Y', 23, 1, NOW(), 1, NOW());
+INSERT INTO TB_COMMON_CODE VALUES ('G940', '26', '신한은행', NULL, 'Y', 26, 11, NOW(), 11, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '27', '한국씨티은행(구한미)', NULL, 'Y', 27, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '31', '대구은행', NULL, 'Y', 31, 1, NOW(), 1, NOW());
 INSERT INTO TB_COMMON_CODE VALUES ('G940', '32', '부산은행', NULL, 'Y', 32, 1, NOW(), 1, NOW());
@@ -3816,10 +3830,10 @@ CREATE TABLE TB_DELIVERY_FEE (
   ORD_NO         INT UNSIGNED NOT NULL COMMENT '주문번호', -- 주문번호
   DELV_FEE_GB    VARCHAR(20)  NOT NULL COMMENT '배송비구분(공통코드G018)', -- 배송비구분(공통코드G018)
   DELV_FEE_CD    VARCHAR(20)  NOT NULL COMMENT '배송비정책코드', -- 배송비정책코드
-  DELV_FEE       INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '배송비', -- 배송비
+  DELV_FEE       INT NOT NULL DEFAULT 0 COMMENT '배송비', -- 배송비
   DELV_CPN_SQ    INT UNSIGNED NULL     COMMENT '배송비쿠폰일련번호', -- 배송비쿠폰일련번호
-  DELV_CPN_DC_AMT INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '배송비쿠폰할인금액', -- 배송비쿠폰할인금액
-  REAL_DELV_AMT   INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '배송비실결제금액', -- 배송비실결제금액
+  DELV_CPN_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '배송비쿠폰할인금액', -- 배송비쿠폰할인금액
+  REAL_DELV_AMT   INT NOT NULL DEFAULT 0 COMMENT '배송비실결제금액', -- 배송비실결제금액
   ORD_CHG_SQ     INT UNSIGNED NULL     COMMENT '주문변경일련번호', -- 주문변경일련번호
   SUPPLY_COMP_CD VARCHAR(20)  NOT NULL COMMENT '공급업체코드', -- 공급업체코드
   DELV_USAC_YN   CHAR(1)      NOT NULL DEFAULT 'N' COMMENT '배송비정산여부', -- 배송비정산여부
@@ -10471,8 +10485,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 '표시순서', -- 표시순서
@@ -10519,6 +10534,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 '표시순서', -- 표시순서
@@ -10610,11 +10626,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 '수정자번호', -- 수정자번호
@@ -10641,6 +10658,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 '표시순서', -- 표시순서
@@ -11615,61 +11633,96 @@ ALTER TABLE TB_STOCK_SYNC_BASE
 #    
     
 ################################################################################
-#WMS 재고  ESKIM
+#WMS 재고  
 ################################################################################
-DROP TABLE IF EXISTS TB_STOCK_BY_LOCCODE RESTRICT;
-CREATE TABLE TB_STOCK_BY_LOCCODE (
-  WH_CODE          VARCHAR(20)       NOT NULL COMMENT '창고코드', 
-  LOC_CODE         VARCHAR(20)       NOT NULL COMMENT '위치코드',
+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피킹수량',
-  PICKING_LOC_YN   VARCHAR(1)        NOT NULL COMMENT '',
-  MAX_DISP_QTY     SMALLINT          NOT NULL DEFAULT 0 COMMENT '',
-  MODIFY_NO        INT UNSIGNED      NULL COMMENT '수정자번호', -- 수정자번호
-  MODIFY_DATE      TIMESTAMP         NULL COMMENT '수정일시', -- 수정일시
   UPD_DT           TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일'
 )
 COMMENT 'WMS재고연동. 재고 연동 시 삭제 후 등록에 의한 발생';
 
 -- 재고연동
-CREATE INDEX IX_STOCK_BY_LOCCODE_01
-  ON TB_STOCK_BY_LOCCODE(
-    PRODUCT_NO ASC,
-    SKU_CODE ASC
-  );
-
+ALTER TABLE TB_WMS_STOCK
+  ADD CONSTRAINT PK_WMS_STOCK
+    PRIMARY KEY (
+      PRODUCT_NO,
+      SKU_CODE   
+    );
 ################################################################################
-#WMS 재고  ESKIM
+#WMS 재고 HST  
 ################################################################################
-DROP TABLE IF EXISTS TB_STOCK_BY_LOCCODE_HST RESTRICT;
-CREATE TABLE TB_STOCK_BY_LOCCODE_HST (
+DROP TABLE IF EXISTS TB_WMS_STOCK_HST RESTRICT;
+CREATE TABLE TB_WMS_STOCK_HST (
   JOBDATE          VARCHAR(14)   NOT NULL COMMENT '작업일시',
-  WH_CODE          VARCHAR(20)       NOT NULL COMMENT '창고코드', 
-  LOC_CODE         VARCHAR(20)       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피킹수량',
-  PICKING_LOC_YN   VARCHAR(1)        NOT NULL COMMENT '',
-  MAX_DISP_QTY     SMALLINT          NOT NULL DEFAULT 0 COMMENT '',
-  MODIFY_NO        INT UNSIGNED      NULL COMMENT '수정자번호', -- 수정자번호
-  MODIFY_DATE      TIMESTAMP         NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시' -- 수정일시
+  EOUT_PICKING_QTY SMALLINT          NOT NULL DEFAULT 0 COMMENT 'EOUT피킹수량'
 )
 COMMENT 'WMS재고연동이력. 재고 연동 시 삭제 후 등록에 의한 발생';
 
 -- 재고연동
-CREATE INDEX IX_STOCK_BY_LOCCODE_HST_01
-  ON TB_STOCK_BY_LOCCODE_HST(
+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
     
+  );
+  
 ################################################################################
 #상품조회이력
 ################################################################################
@@ -14806,6 +14859,9 @@ CREATE INDEX IX_TMTB_APPLY_GOODS_01
     TMTB_SQ ASC -- 다다익선일련번호
   );
 
+CREATE INDEX IX_TB_TMTB_APPLY_GOODS_02
+    ON TB_TMTB_APPLY_GOODS (GOODS_CD);
+
 ALTER TABLE TB_TMTB_APPLY_GOODS
   MODIFY COLUMN TMTB_APPLY_GOODS_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '다다익선적용대상일련번호';
 
@@ -15510,8 +15566,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에 생성)';
 
@@ -15888,3 +15946,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.설계/ERD/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index


BIN
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.core.resources/.root/69.tree


BIN
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.core.resources/.root/70.tree


BIN
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources


BIN
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.core.resources/.snap


+ 1 - 1
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml

@@ -7,8 +7,8 @@
 	<section name="SaveAsDialogSettings">
 		<item value="525" key="DIALOG_WIDTH"/>
 		<item value="-51" key="DIALOG_Y_ORIGIN"/>
-		<item value="88" key="DIALOG_X_ORIGIN"/>
 		<item value="580" key="DIALOG_HEIGHT"/>
+		<item value="88" key="DIALOG_X_ORIGIN"/>
 		<item value="1|맑은 고딕|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|맑은 고딕" key="DIALOG_FONT_NAME"/>
 	</section>
 </section>

+ 9 - 8
산출물/3.설계/ERD/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml

@@ -32,10 +32,10 @@
 </folder>
 </info>
 </editorArea>
-<editor activePart="true" focus="true" id="com.tomato.exerd.editor.DiagramEditor" name="ST24.exerd" partName="ST24.exerd" title="ST24.exerd" tooltip="D:\WIDE\workspace\webapps\style24\style24.doc\산출물\3.설계\ERD\ST24.exerd" workbook="DefaultEditorWorkbook">
+<editor id="com.tomato.exerd.editor.DiagramEditor" name="ST24.exerd" partName="ST24.exerd" title="ST24.exerd" tooltip="D:\WIDE\workspace\webapps\style24\style24.doc\산출물\3.설계\ERD\ST24.exerd" workbook="DefaultEditorWorkbook">
 <input factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/ST24.exerd"/>
 </editor>
-<editor id="com.tomato.exerd.editor.DiagramEditor" name="iSTYLE24_Mall.exerd" partName="iSTYLE24_Mall.exerd" title="iSTYLE24_Mall.exerd" tooltip="D:\WIDE\workspace\webapps\style24\style24.doc\산출물\3.설계\ERD\asis\iSTYLE24_Mall.exerd" workbook="DefaultEditorWorkbook">
+<editor activePart="true" focus="true" id="com.tomato.exerd.editor.DiagramEditor" name="iSTYLE24_Mall.exerd" partName="iSTYLE24_Mall.exerd" title="iSTYLE24_Mall.exerd" tooltip="D:\WIDE\workspace\webapps\style24\style24.doc\산출물\3.설계\ERD\asis\iSTYLE24_Mall.exerd" workbook="DefaultEditorWorkbook">
 <input factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/asis/iSTYLE24_Mall.exerd"/>
 </editor>
 <editor id="com.tomato.exerd.editor.DiagramEditor" name="iSTYLE24_Wms.exerd" partName="iSTYLE24_Wms.exerd" title="iSTYLE24_Wms.exerd" tooltip="D:\WIDE\workspace\webapps\style24\style24.doc\산출물\3.설계\ERD\asis\iSTYLE24_Wms.exerd" workbook="DefaultEditorWorkbook">
@@ -177,12 +177,8 @@
 <editor factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" id="com.tomato.exerd.editor.DiagramEditor" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/asis/iSTYLE24_Mall.exerd"/>
 <editor factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" id="com.tomato.exerd.editor.DiagramEditor" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/asis/iSTYLE24_Mall.exerd"/>
 <editor factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" id="com.tomato.exerd.editor.DiagramEditor" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/ST24.exerd"/>
+<editor factoryID="org.eclipse.ui.ide.FileStoreEditorInputFactory" id="com.tomato.exerd.editor.DiagramEditor" uri="file:/D:/WIDE/workspace/webapps/style24/style24.doc/산출물/3.설계/ERD/asis/iSTYLE24_Mall.exerd"/>
 </editors>
-<item historyLabel="iSTYLE24_Mall.exerd" index="0"/>
-<item historyLabel="ST24.exerd" index="1"/>
-<item historyLabel="iSTYLE24_Mall.exerd" index="0"/>
-<item historyLabel="ST24.exerd" index="1"/>
-<item historyLabel="iSTYLE24_Mall.exerd" index="0"/>
 <item historyLabel="ST24.exerd" index="1"/>
 <item historyLabel="iSTYLE24_Mall.exerd" index="0"/>
 <item historyLabel="ST24.exerd" index="2"/>
@@ -227,7 +223,12 @@
 <item historyLabel="iSTYLE24_Mall.exerd" index="8"/>
 <item historyLabel="ST24.exerd" index="5"/>
 <item historyLabel="iSTYLE24_Mall.exerd" index="8"/>
-<item active="true" historyLabel="ST24.exerd" index="9"/>
+<item historyLabel="ST24.exerd" index="9"/>
+<item historyLabel="iSTYLE24_Mall.exerd" index="10"/>
+<item historyLabel="ST24.exerd" index="9"/>
+<item historyLabel="iSTYLE24_Mall.exerd" index="10"/>
+<item historyLabel="ST24.exerd" index="9"/>
+<item active="true" historyLabel="iSTYLE24_Mall.exerd" index="10"/>
 </navigationHistory>
 <input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
 </page>

BIN
산출물/3.설계/ERD/ST24.exerd


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;