Jelajahi Sumber

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

swkim 5 tahun lalu
induk
melakukan
78a2f1f374

TEMPAT SAMPAH
산출물/2.분석/01.마스터테이블(로딩용)/통합품번분류코드_v2.20_20210512.xlsx


+ 154 - 151
산출물/3.설계/05.DB-Object/03.db_function/FN_GET_APPLY_CPN1_ID.sql

@@ -1,158 +1,161 @@
 CREATE DEFINER=`style`@`%` FUNCTION `style`.`FN_GET_APPLY_CPN1_ID`(I_GOODS_CD varchar(50), I_FRONT_GB char) RETURNS int
 CREATE DEFINER=`style`@`%` FUNCTION `style`.`FN_GET_APPLY_CPN1_ID`(I_GOODS_CD varchar(50), I_FRONT_GB char) RETURNS int
 BEGIN
 BEGIN
-	DECLARE O_RET_VALUE INT;
-	DECLARE O_CURR_PRICE INT;
-	DECLARE O_DC_VAL INT;
+    DECLARE O_RET_VALUE INT;
+    DECLARE O_CURR_PRICE INT;
+    DECLARE O_DC_VAL INT;
 
 
-	SET O_RET_VALUE = 0;
-	SET O_DC_VAL = 0;
+    SET O_RET_VALUE = 0;
+    SET O_DC_VAL = 0;
 
 
-	SELECT CURR_PRICE
-	INTO   O_CURR_PRICE -- 상품금액
-	FROM   TB_GOODS
-	WHERE  GOODS_CD = I_GOODS_CD
-	;
+    SELECT CURR_PRICE
+    INTO   O_CURR_PRICE -- 상품금액
+    FROM   TB_GOODS
+    WHERE  GOODS_CD = I_GOODS_CD
+    ;
 
 
-	WITH GOODS_DATA AS (
-		SELECT G.GOODS_CD
-		     , G.CURR_PRICE
-		     , G.BRAND_CD
-		     , G.SUPPLY_COMP_CD
-		FROM   TB_GOODS G
-		WHERE  1=1
-		AND    G.GOODS_CD = I_GOODS_CD
-	)
-	SELECT Y.CPN_ID
-	INTO   O_RET_VALUE
-	FROM (
-		SELECT CP.CPN_ID
-		     , I_FRONT_GB AS FRONT_GB
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_PVAL) / 100
-		                      THEN (Z.CURR_PRICE * CP.DC_PVAL) / 100
-		                      ELSE CP.MAX_DC_AMT
-		                      END
-		            ELSE CP.DC_PVAL
-		            END  DC_PVAL
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_MVAL) / 100
-		                      THEN (Z.CURR_PRICE * CP.DC_MVAL) / 100
-		                      ELSE CP.MAX_DC_AMT
-		                      END
-		            ELSE CP.DC_MVAL
-		            END  DC_MVAL
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_AVAL) / 100
-		                      THEN (Z.CURR_PRICE * CP.DC_AVAL) / 100
-		                      ELSE CP.MAX_DC_AMT
-		                      END
-		            ELSE CP.DC_AVAL
-		            END  DC_AVAL
-		FROM   TB_COUPON CP
-		INNER  JOIN TB_COUPON_CUST_GBN CGB
-		ON     CP.CPN_ID = CGB.CPN_ID
-		AND    CGB.USABLE_CUST_GB IN ('G100_10') -- 일반회원
-		INNER  JOIN TB_COUPON_CUST_GRADE CGR
-		ON     CP.CPN_ID = CGR.CPN_ID
-		AND    CGR.USABLE_CUST_GRADE IN ('G110_10', 'G110_20', 'G110_30', 'G110_40', 'G110_50') -- 전체등급
-		INNER  JOIN (
-			SELECT X.*
-			FROM (
-				SELECT CR.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   TB_COUPON_REFVAL CR
-				INNER  JOIN GOODS_DATA GD
-				ON     GD.GOODS_CD = CR.REF_VAL
-				WHERE  1=1
-				AND    CR.CPN_TARGET = 'G260_10' -- 상품
-				AND    CR.DEL_YN = 'N'
-				UNION
-				SELECT CR.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   (
-					SELECT C4.LEAF_CATE_NO
-					     , CASE WHEN X = 1 THEN 'CATE1_NO'
-					            WHEN X = 2 THEN 'CATE2_NO'
-					            WHEN X = 3 THEN 'CATE3_NO'
-					            WHEN X = 4 THEN 'CATE4_NO'
-					            ELSE 'CATE5_NO'
-					            END  CATE_LVL
-					     , CASE WHEN X = 1 THEN CATE1_NO
-					            WHEN X = 2 THEN CATE2_NO
-					            WHEN X = 3 THEN CATE3_NO
-					            WHEN X = 4 THEN CATE4_NO
-					            ELSE CATE5_NO
-					            END  CATE_NO
-					FROM   TB_CATE_4SRCH C4
-					LEFT   OUTER JOIN (
-						SELECT 1 AS X
-						UNION  ALL
-						SELECT 2 AS X
-						UNION  ALL
-						SELECT 3 AS X
-						UNION  ALL
-						SELECT 4 AS X
-						UNION  ALL
-						SELECT 5 AS X
-					) B
-					ON     1=1
-					WHERE  1=1
-					AND    C4.SITE_CD = 'G000_10'
-					AND    C4.CATE_TYPE = 'G031_10'
-					ORDER  BY LEAF_CATE_NO
-					     , CATE_LVL
-				) C4SRCH
-				INNER  JOIN TB_COUPON_REFVAL CR
-				ON     C4SRCH.CATE_NO = CR.REF_VAL
-				INNER  JOIN TB_CATE_GOODS CG
-				ON     C4SRCH.LEAF_CATE_NO = CG.CATE_NO
-				INNER  JOIN GOODS_DATA GD
-				ON     CG.GOODS_CD = GD.GOODS_CD
-				WHERE  1=1
-				AND    C4SRCH.CATE_NO IS NOT NULL
-				AND    CR.CPN_TARGET = 'G260_11' -- 카테고리
-				AND    CR.DEL_YN = 'N'
-				UNION
-				SELECT CR1.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   GOODS_DATA GD
-				INNER  JOIN TB_COUPON_REFVAL CR1
-				ON     GD.BRAND_CD = CR1.REF_VAL
-				AND    CR1.CPN_TARGET = 'G260_12' -- 브랜드
-				AND    CR1.DEL_YN = 'N'
-				INNER  JOIN TB_COUPON_REFVAL CR2
-				ON     GD.SUPPLY_COMP_CD = CR2.REF_VAL
-				AND    CR2.CPN_TARGET = 'G260_13' -- 공급업체
-				AND    CR2.DEL_YN = 'N'
-			) X
-			LEFT   OUTER JOIN TB_COUPON_REFVAL CR
-			ON     X.CPN_ID = CR.CPN_ID
-			AND    X.GOODS_CD = CR.REF_VAL
-			AND    CR.CPN_TARGET = 'G260_14' -- 쿠폰제외상품
-			AND    CR.DEL_YN = 'N'
-			LEFT   OUTER JOIN TB_COUPON_BAN_GOODS CBG -- 전체제외상품
-			ON     X.GOODS_CD = CBG.GOODS_CD
-			AND    CBG.DEL_YN = 'N'
-			WHERE  1=1
-			AND    CR.CPN_ID IS NULL
-			AND    CBG.CPN_BAN_GOODS_SQ IS NULL
-		) Z
-		ON     Z.CPN_ID = CP.CPN_ID
-		WHERE  1=1
-		AND    CP.SITE_CD = 'G000_10' -- 자사몰
-		AND    CP.CPN_TYPE = 'G230_10' -- 즉시할인
-		AND    CP.DOWN_STDT < CURRENT_TIMESTAMP
-		AND    CP.DOWN_EDDT > CURRENT_TIMESTAMP
-		ORDER  BY (CASE WHEN I_FRONT_GB IN ('P') THEN CP.DC_PVAL
-		                WHEN I_FRONT_GB IN ('M') THEN CP.DC_MVAL
-		                WHEN I_FRONT_GB IN ('A') THEN CP.DC_AVAL
-		                END) DESC
-	) Y
-	LIMIT   1
-	;
+    WITH GOODS_DATA AS (
+        SELECT G.GOODS_CD
+             , G.CURR_PRICE
+             , G.BRAND_CD
+             , G.SUPPLY_COMP_CD
+        FROM   TB_GOODS G
+        WHERE  1=1
+        AND    G.GOODS_CD = I_GOODS_CD
+    )
+    SELECT Y.CPN_ID
+    INTO   O_RET_VALUE
+    FROM (
+        SELECT CP.CPN_ID
+             , I_FRONT_GB AS FRONT_GB
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_PVAL) / 100
+                              THEN (Z.CURR_PRICE * CP.DC_PVAL) / 100
+                              ELSE CP.MAX_DC_AMT
+                              END
+                    ELSE CP.DC_PVAL
+                    END  DC_PVAL
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_MVAL) / 100
+                              THEN (Z.CURR_PRICE * CP.DC_MVAL) / 100
+                              ELSE CP.MAX_DC_AMT
+                              END
+                    ELSE CP.DC_MVAL
+                    END  DC_MVAL
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN CASE WHEN CP.MAX_DC_AMT > (Z.CURR_PRICE * CP.DC_AVAL) / 100
+                              THEN (Z.CURR_PRICE * CP.DC_AVAL) / 100
+                              ELSE CP.MAX_DC_AMT
+                              END
+                    ELSE CP.DC_AVAL
+                    END  DC_AVAL
+        FROM   TB_COUPON CP
+        INNER  JOIN TB_COUPON_CUST_GBN CGB
+        ON     CP.CPN_ID = CGB.CPN_ID
+        AND    CGB.USABLE_CUST_GB IN ('G100_10') -- 일반회원
+        INNER  JOIN (
+            SELECT X.*
+            FROM (
+                SELECT CR.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   TB_COUPON_REFVAL CR
+                INNER  JOIN GOODS_DATA GD
+                ON     GD.GOODS_CD = CR.REF_VAL
+                WHERE  1=1
+                AND    CR.CPN_TARGET = 'G260_10' -- 상품
+                AND    CR.DEL_YN = 'N'
+                UNION
+                SELECT CR.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   (
+                    SELECT C4.LEAF_CATE_NO
+                         , CASE WHEN X = 1 THEN 'CATE1_NO'
+                                WHEN X = 2 THEN 'CATE2_NO'
+                                WHEN X = 3 THEN 'CATE3_NO'
+                                WHEN X = 4 THEN 'CATE4_NO'
+                                ELSE 'CATE5_NO'
+                                END  CATE_LVL
+                         , CASE WHEN X = 1 THEN CATE1_NO
+                                WHEN X = 2 THEN CATE2_NO
+                                WHEN X = 3 THEN CATE3_NO
+                                WHEN X = 4 THEN CATE4_NO
+                                ELSE CATE5_NO
+                                END  CATE_NO
+                    FROM   TB_CATE_4SRCH C4
+                    LEFT   OUTER JOIN (
+                        SELECT 1 AS X
+                        UNION  ALL
+                        SELECT 2 AS X
+                        UNION  ALL
+                        SELECT 3 AS X
+                        UNION  ALL
+                        SELECT 4 AS X
+                        UNION  ALL
+                        SELECT 5 AS X
+                    ) B
+                    ON     1=1
+                    WHERE  1=1
+                    AND    C4.SITE_CD = 'G000_10'
+                    AND    C4.CATE_TYPE = 'G031_10'
+                    ORDER  BY LEAF_CATE_NO
+                         , CATE_LVL
+                ) C4SRCH
+                INNER  JOIN TB_COUPON_REFVAL CR
+                ON     C4SRCH.CATE_NO = CR.REF_VAL
+                INNER  JOIN TB_CATE_GOODS CG
+                ON     C4SRCH.LEAF_CATE_NO = CG.CATE_NO
+                INNER  JOIN GOODS_DATA GD
+                ON     CG.GOODS_CD = GD.GOODS_CD
+                WHERE  1=1
+                AND    C4SRCH.CATE_NO IS NOT NULL
+                AND    CR.CPN_TARGET = 'G260_11' -- 카테고리
+                AND    CR.DEL_YN = 'N'
+                UNION
+                SELECT CR1.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   GOODS_DATA GD
+                INNER  JOIN TB_COUPON_REFVAL CR1
+                ON     GD.BRAND_CD = CR1.REF_VAL
+                AND    CR1.CPN_TARGET = 'G260_12' -- 브랜드
+                AND    CR1.DEL_YN = 'N'
+                UNION
+                SELECT CR2.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   GOODS_DATA GD
+                INNER  JOIN TB_COUPON_REFVAL CR2
+                ON     GD.SUPPLY_COMP_CD = CR2.REF_VAL
+                AND    CR2.CPN_TARGET = 'G260_13' -- 공급업체
+                AND    CR2.DEL_YN = 'N'
+            ) X
+            LEFT   OUTER JOIN TB_COUPON_REFVAL CR
+            ON     X.CPN_ID = CR.CPN_ID
+            AND    X.GOODS_CD = CR.REF_VAL
+            AND    CR.CPN_TARGET = 'G260_14' -- 쿠폰제외상품
+            AND    CR.DEL_YN = 'N'
+            LEFT   OUTER JOIN TB_COUPON_BAN_GOODS CBG -- 전체제외상품
+            ON     X.GOODS_CD = CBG.GOODS_CD
+            AND    CBG.DEL_YN = 'N'
+            WHERE  1=1
+            AND    CR.CPN_ID IS NULL
+            AND    CBG.CPN_BAN_GOODS_SQ IS NULL
+        ) Z
+        ON     Z.CPN_ID = CP.CPN_ID
+        WHERE  1=1
+        AND    CP.SITE_CD = 'G000_10' -- 자사몰
+        AND    CP.CPN_TYPE = 'G230_10' -- 즉시할인
+        AND    CP.CPN_STAT = 'G232_11' -- 진행중
+        AND    CP.AVAIL_STDT < CURRENT_TIMESTAMP
+        AND    CP.AVAIL_EDDT > CURRENT_TIMESTAMP
+        ORDER  BY (CASE WHEN I_FRONT_GB IN ('P') THEN CP.DC_PVAL
+                        WHEN I_FRONT_GB IN ('M') THEN CP.DC_MVAL
+                        WHEN I_FRONT_GB IN ('A') THEN CP.DC_AVAL
+                        END) DESC
+    ) Y
+    LIMIT   1
+    ;
 
 
-	RETURN O_RET_VALUE;
+    RETURN O_RET_VALUE;
 END
 END

+ 155 - 152
산출물/3.설계/05.DB-Object/03.db_function/FN_GET_APPLY_CPN1_PRICE.sql

@@ -1,159 +1,162 @@
 CREATE DEFINER=`style`@`%` FUNCTION `style`.`FN_GET_APPLY_CPN1_PRICE`(I_GOODS_CD varchar(50), I_FRONT_GB char) RETURNS int
 CREATE DEFINER=`style`@`%` FUNCTION `style`.`FN_GET_APPLY_CPN1_PRICE`(I_GOODS_CD varchar(50), I_FRONT_GB char) RETURNS int
 BEGIN
 BEGIN
-	DECLARE O_RET_VALUE INT;
-	DECLARE O_CURR_PRICE INT;
-	DECLARE O_DC_VAL INT;
+    DECLARE O_RET_VALUE INT;
+    DECLARE O_CURR_PRICE INT;
+    DECLARE O_DC_VAL INT;
 
 
-	SET O_RET_VALUE = 0;
-	SET O_DC_VAL = 0;
+    SET O_RET_VALUE = 0;
+    SET O_DC_VAL = 0;
 
 
-	SELECT CURR_PRICE
-	INTO   O_CURR_PRICE -- 상품금액
-	FROM   TB_GOODS
-	WHERE  GOODS_CD = I_GOODS_CD
-	;
+    SELECT CURR_PRICE
+    INTO   O_CURR_PRICE -- 상품금액
+    FROM   TB_GOODS
+    WHERE  GOODS_CD = I_GOODS_CD
+    ;
 
 
-	WITH GOODS_DATA AS (
-		SELECT G.GOODS_CD
-		     , G.CURR_PRICE
-		     , G.BRAND_CD
-		     , G.SUPPLY_COMP_CD
-		FROM   TB_GOODS G
-		WHERE  1=1
-		AND    G.GOODS_CD = I_GOODS_CD
-	)
-	SELECT CASE WHEN Y.FRONT_GB IN ('P') THEN Y.DC_PVAL
-	            WHEN Y.FRONT_GB IN ('M') THEN Y.DC_MVAL
-	            WHEN Y.FRONT_GB IN ('A') THEN Y.DC_AVAL
-	            END
-	INTO   O_DC_VAL
-	FROM (
-		SELECT CP.CPN_ID
-		     , I_FRONT_GB AS FRONT_GB
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN (Z.CURR_PRICE * CP.DC_PVAL) / 100
-		            ELSE CP.DC_PVAL
-		            END  DC_PVAL
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN (Z.CURR_PRICE * CP.DC_MVAL) / 100
-		            ELSE CP.DC_MVAL
-		            END  DC_MVAL
-		     , CASE WHEN CP.DC_WAY IN ('G240_11')
-		            THEN (Z.CURR_PRICE * CP.DC_AVAL) / 100
-		            ELSE CP.DC_AVAL
-		            END  DC_AVAL
-		FROM   TB_COUPON CP
-		INNER  JOIN TB_COUPON_CUST_GBN CGB
-		ON     CP.CPN_ID = CGB.CPN_ID
-		AND    CGB.USABLE_CUST_GB IN ('G100_10') -- 일반회원
-		INNER  JOIN TB_COUPON_CUST_GRADE CGR
-		ON     CP.CPN_ID = CGR.CPN_ID
-		AND    CGR.USABLE_CUST_GRADE IN ('G110_10', 'G110_20', 'G110_30', 'G110_40', 'G110_50') -- 전체등급
-		INNER  JOIN (
-			SELECT X.*
-			FROM (
-				SELECT CR.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   TB_COUPON_REFVAL CR
-				INNER  JOIN GOODS_DATA GD
-				ON     GD.GOODS_CD = CR.REF_VAL
-				WHERE  1=1
-				AND    CR.CPN_TARGET = 'G260_10' -- 상품
-				AND    CR.DEL_YN = 'N'
-				UNION
-				SELECT CR.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   (
-					SELECT C4.LEAF_CATE_NO
-					     , CASE WHEN X = 1 THEN 'CATE1_NO'
-					            WHEN X = 2 THEN 'CATE2_NO'
-					            WHEN X = 3 THEN 'CATE3_NO'
-					            WHEN X = 4 THEN 'CATE4_NO'
-					            ELSE 'CATE5_NO'
-					            END  CATE_LVL
-					     , CASE WHEN X = 1 THEN CATE1_NO
-					            WHEN X = 2 THEN CATE2_NO
-					            WHEN X = 3 THEN CATE3_NO
-					            WHEN X = 4 THEN CATE4_NO
-					            ELSE CATE5_NO
-					            END  CATE_NO
-					FROM   TB_CATE_4SRCH C4
-					LEFT   OUTER JOIN (
-						SELECT 1 AS X
-						UNION  ALL
-						SELECT 2 AS X
-						UNION  ALL
-						SELECT 3 AS X
-						UNION  ALL
-						SELECT 4 AS X
-						UNION  ALL
-						SELECT 5 AS X
-					) B
-					ON     1=1
-					WHERE  1=1
-					AND    C4.SITE_CD = 'G000_10'
-					AND    C4.CATE_TYPE = 'G031_10'
-					ORDER  BY LEAF_CATE_NO
-					     , CATE_LVL
-				) C4SRCH
-				INNER  JOIN TB_COUPON_REFVAL CR
-				ON     C4SRCH.CATE_NO = CR.REF_VAL
-				INNER  JOIN TB_CATE_GOODS CG
-				ON     C4SRCH.LEAF_CATE_NO = CG.CATE_NO
-				INNER  JOIN GOODS_DATA GD
-				ON     CG.GOODS_CD = GD.GOODS_CD
-				WHERE  1=1
-				AND    C4SRCH.CATE_NO IS NOT NULL
-				AND    CR.CPN_TARGET = 'G260_11' -- 카테고리
-				AND    CR.DEL_YN = 'N'
-				UNION
-				SELECT CR1.CPN_ID
-				     , GD.GOODS_CD
-				     , GD.CURR_PRICE
-				FROM   GOODS_DATA GD
-				INNER  JOIN TB_COUPON_REFVAL CR1
-				ON     GD.BRAND_CD = CR1.REF_VAL
-				AND    CR1.CPN_TARGET = 'G260_12' -- 브랜드
-				AND    CR1.DEL_YN = 'N'
-				INNER  JOIN TB_COUPON_REFVAL CR2
-				ON     GD.SUPPLY_COMP_CD = CR2.REF_VAL
-				AND    CR2.CPN_TARGET = 'G260_13' -- 공급업체
-				AND    CR2.DEL_YN = 'N'
-			) X
-			LEFT   OUTER JOIN TB_COUPON_REFVAL CR
-			ON     X.CPN_ID = CR.CPN_ID
-			AND    X.GOODS_CD = CR.REF_VAL
-			AND    CR.CPN_TARGET = 'G260_14' -- 쿠폰제외상품
-			AND    CR.DEL_YN = 'N'
-			LEFT   OUTER JOIN TB_COUPON_BAN_GOODS CBG -- 전체제외상품
-			ON     X.GOODS_CD = CBG.GOODS_CD
-			AND    CBG.DEL_YN = 'N'
-			WHERE  1=1
-			AND    CR.CPN_ID IS NULL
-			AND    CBG.CPN_BAN_GOODS_SQ IS NULL
-		) Z
-		ON     Z.CPN_ID = CP.CPN_ID
-		WHERE  1=1
-		AND    CP.SITE_CD = 'G000_10' -- 자사몰
-		AND    CP.CPN_TYPE = 'G230_10' -- 즉시할인
-		AND    CP.DOWN_STDT < CURRENT_TIMESTAMP
-		AND    CP.DOWN_EDDT > CURRENT_TIMESTAMP
-		ORDER  BY (CASE WHEN I_FRONT_GB IN ('P') THEN CP.DC_PVAL
-		                WHEN I_FRONT_GB IN ('M') THEN CP.DC_MVAL
-		                WHEN I_FRONT_GB IN ('A') THEN CP.DC_AVAL
-		                END) DESC
-	) Y
-	LIMIT   1
-	;
-	
-	IF O_CURR_PRICE > O_DC_VAL THEN
-		SET O_RET_VALUE = O_CURR_PRICE - O_DC_VAL;	
-	ELSE
-		SET O_RET_VALUE = 0;
-	END IF
-	;
+    WITH GOODS_DATA AS (
+        SELECT G.GOODS_CD
+             , G.CURR_PRICE
+             , G.BRAND_CD
+             , G.SUPPLY_COMP_CD
+        FROM   TB_GOODS G
+        WHERE  1=1
+        AND    G.GOODS_CD = I_GOODS_CD
+    )
+    SELECT CASE WHEN Y.FRONT_GB IN ('P') THEN Y.DC_PVAL
+                WHEN Y.FRONT_GB IN ('M') THEN Y.DC_MVAL
+                WHEN Y.FRONT_GB IN ('A') THEN Y.DC_AVAL
+                END
+    INTO   O_DC_VAL
+    FROM (
+        SELECT CP.CPN_ID
+             , I_FRONT_GB AS FRONT_GB
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN (Z.CURR_PRICE * CP.DC_PVAL) / 100
+                    ELSE CP.DC_PVAL
+                    END  DC_PVAL
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN (Z.CURR_PRICE * CP.DC_MVAL) / 100
+                    ELSE CP.DC_MVAL
+                    END  DC_MVAL
+             , CASE WHEN CP.DC_WAY IN ('G240_11')
+                    THEN (Z.CURR_PRICE * CP.DC_AVAL) / 100
+                    ELSE CP.DC_AVAL
+                    END  DC_AVAL
+        FROM   TB_COUPON CP
+        INNER  JOIN TB_COUPON_CUST_GBN CGB
+        ON     CP.CPN_ID = CGB.CPN_ID
+        AND    CGB.USABLE_CUST_GB IN ('G100_10') -- 일반회원
+        INNER  JOIN (
+            SELECT X.*
+            FROM (
+                SELECT CR.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   TB_COUPON_REFVAL CR
+                INNER  JOIN GOODS_DATA GD
+                ON     GD.GOODS_CD = CR.REF_VAL
+                WHERE  1=1
+                AND    CR.CPN_TARGET = 'G260_10' -- 상품
+                AND    CR.DEL_YN = 'N'
+                UNION
+                SELECT CR.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   (
+                    SELECT C4.LEAF_CATE_NO
+                         , CASE WHEN X = 1 THEN 'CATE1_NO'
+                                WHEN X = 2 THEN 'CATE2_NO'
+                                WHEN X = 3 THEN 'CATE3_NO'
+                                WHEN X = 4 THEN 'CATE4_NO'
+                                ELSE 'CATE5_NO'
+                                END  CATE_LVL
+                         , CASE WHEN X = 1 THEN CATE1_NO
+                                WHEN X = 2 THEN CATE2_NO
+                                WHEN X = 3 THEN CATE3_NO
+                                WHEN X = 4 THEN CATE4_NO
+                                ELSE CATE5_NO
+                                END  CATE_NO
+                    FROM   TB_CATE_4SRCH C4
+                    LEFT   OUTER JOIN (
+                        SELECT 1 AS X
+                        UNION  ALL
+                        SELECT 2 AS X
+                        UNION  ALL
+                        SELECT 3 AS X
+                        UNION  ALL
+                        SELECT 4 AS X
+                        UNION  ALL
+                        SELECT 5 AS X
+                    ) B
+                    ON     1=1
+                    WHERE  1=1
+                    AND    C4.SITE_CD = 'G000_10'
+                    AND    C4.CATE_TYPE = 'G031_10'
+                    ORDER  BY LEAF_CATE_NO
+                         , CATE_LVL
+                ) C4SRCH
+                INNER  JOIN TB_COUPON_REFVAL CR
+                ON     C4SRCH.CATE_NO = CR.REF_VAL
+                INNER  JOIN TB_CATE_GOODS CG
+                ON     C4SRCH.LEAF_CATE_NO = CG.CATE_NO
+                INNER  JOIN GOODS_DATA GD
+                ON     CG.GOODS_CD = GD.GOODS_CD
+                WHERE  1=1
+                AND    C4SRCH.CATE_NO IS NOT NULL
+                AND    CR.CPN_TARGET = 'G260_11' -- 카테고리
+                AND    CR.DEL_YN = 'N'
+                UNION
+                SELECT CR1.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   GOODS_DATA GD
+                INNER  JOIN TB_COUPON_REFVAL CR1
+                ON     GD.BRAND_CD = CR1.REF_VAL
+                AND    CR1.CPN_TARGET = 'G260_12' -- 브랜드
+                AND    CR1.DEL_YN = 'N'
+                UNION
+                SELECT CR2.CPN_ID
+                     , GD.GOODS_CD
+                     , GD.CURR_PRICE
+                FROM   GOODS_DATA GD
+                INNER  JOIN TB_COUPON_REFVAL CR2
+                ON     GD.SUPPLY_COMP_CD = CR2.REF_VAL
+                AND    CR2.CPN_TARGET = 'G260_13' -- 공급업체
+                AND    CR2.DEL_YN = 'N'
+            ) X
+            LEFT   OUTER JOIN TB_COUPON_REFVAL CR
+            ON     X.CPN_ID = CR.CPN_ID
+            AND    X.GOODS_CD = CR.REF_VAL
+            AND    CR.CPN_TARGET = 'G260_14' -- 쿠폰제외상품
+            AND    CR.DEL_YN = 'N'
+            LEFT   OUTER JOIN TB_COUPON_BAN_GOODS CBG -- 전체제외상품
+            ON     X.GOODS_CD = CBG.GOODS_CD
+            AND    CBG.DEL_YN = 'N'
+            WHERE  1=1
+            AND    CR.CPN_ID IS NULL
+            AND    CBG.CPN_BAN_GOODS_SQ IS NULL
+        ) Z
+        ON     Z.CPN_ID = CP.CPN_ID
+        WHERE  1=1
+        AND    CP.SITE_CD = 'G000_10' -- 자사몰
+        AND    CP.CPN_TYPE = 'G230_10' -- 즉시할인
+        AND    CP.CPN_STAT = 'G232_11'
+        AND    CP.AVAIL_STDT < CURRENT_TIMESTAMP
+        AND    CP.AVAIL_EDDT > CURRENT_TIMESTAMP
+        ORDER  BY (CASE WHEN I_FRONT_GB IN ('P') THEN CP.DC_PVAL
+                        WHEN I_FRONT_GB IN ('M') THEN CP.DC_MVAL
+                        WHEN I_FRONT_GB IN ('A') THEN CP.DC_AVAL
+                        END) DESC
+    ) Y
+    LIMIT   1
+    ;
+    
+    IF O_CURR_PRICE > O_DC_VAL THEN
+        SET O_RET_VALUE = O_CURR_PRICE - O_DC_VAL;  
+    ELSE
+        SET O_RET_VALUE = 0;
+    END IF
+    ;
 
 
-	RETURN O_RET_VALUE;
+    RETURN O_RET_VALUE;
 END
 END

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

@@ -3696,7 +3696,25 @@ INSERT INTO TB_COMMON_CODE VALUES ('G322','33','도서/외곽지역','도서/외
 INSERT INTO TB_COMMON_CODE VALUES ('G322','42','특판잔류','특판잔류','Y',42,7,					now(),7,now());
 INSERT INTO TB_COMMON_CODE VALUES ('G322','42','특판잔류','특판잔류','Y',42,7,					now(),7,now());
 INSERT INTO TB_COMMON_CODE VALUES ('G322','55','결재불가','결재불가','Y',55,7,					now(),7,now());
 INSERT INTO TB_COMMON_CODE VALUES ('G322','55','결재불가','결재불가','Y',55,7,					now(),7,now());
 INSERT INTO TB_COMMON_CODE VALUES ('G322','56','배달전취소','배달전취소','Y',56,7,				now(),7,now());
 INSERT INTO TB_COMMON_CODE VALUES ('G322','56','배달전취소','배달전취소','Y',56,7,				now(),7,now());
-	 
+
+# G325 WMS사유코드
+INSERT INTO TB_COMMON_CODE VALUES ('ROOT','G325','WMS사유코드','WMS사유코드','Y',325,7,				now(),7,now());	 
+INSERT INTO TB_COMMON_CODE VALUES ('G325','00','타택배착불','타택배착불','Y',1,7,						now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','01','반품 미접수','반품 미접수','Y',2,7,					now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','02','미착','미착','Y',3,7,								now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','03','과착','과착','Y',4,7,								now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','04','배송비 미동봉','배송비 미동봉','Y',5,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','05','다른상품 반품','다른상품 반품','Y',6,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','06','배송비 일부동봉','배송비 일부동봉','Y',7,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','07','맞교환','맞교환','Y',8,7,							now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','08','확정 전 품절(재고없음)','확정 전 품절(재고없음)','Y',9,7,	now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','09','확정 후 품절','확정 후 품절','Y',10,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','10','확정 전 불량','확정 전 불량','Y',11,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','11','확정 후 불량','확정 후 불량','Y',12,7,				now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','12','확정 전 이미지틀림','확정 전 이미지틀림','Y',13,7,		now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','13','확정 후 이미지틀림','확정 후 이미지틀림','Y',14,7,		now(),7,now());
+INSERT INTO TB_COMMON_CODE VALUES ('G325','15','기타(메모없음, 메모이상 등)','기타(메모없음, 메모이상 등)','Y',16,7,	now(),7,now());
+
 
 
 	 
 	 
 UPDATE TB_COMMON_CODE SET DISP_ORD = DISP_ORD-1 WHERE CD_GB = 'G941';
 UPDATE TB_COMMON_CODE SET DISP_ORD = DISP_ORD-1 WHERE CD_GB = 'G941';
@@ -4839,21 +4857,24 @@ INSERT INTO TB_MENU VALUES ('B1008', 'B10', '룩북관리', 'P', '/display/lookb
 INSERT INTO TB_MENU VALUES ('B1009', 'B10', '동영상관리', 'P', '/display/video/form', NULL, 1009, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('B1009', 'B10', '동영상관리', 'P', '/display/video/form', NULL, 1009, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('B1010', 'B10', '인스타그램관리', 'P', '/display/instagram/form', NULL, 1010, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('B1010', 'B10', '인스타그램관리', 'P', '/display/instagram/form', NULL, 1010, 'Y', 1, NOW(), 1, NOW());
 
 
-INSERT INTO TB_MENU VALUES ('C', 'ROOT', '주문/배송', 'M', NULL, NULL, 3, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C10', 'C', '주문관리', 'M', NULL, NULL, 10, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C1001', 'C10', '주문목록', 'P', '/order/list/form', NULL, 1001, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C1002', 'C10', '제휴몰주문가격확인', 'P', '/order/extmall/price/confirm/form', NULL, 1002, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C1003', 'C10', '입점미발주목록', 'P', '/order/seller/unorder/list/form', NULL, 1003, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C1004', 'C10', 'PG승인대사', 'P', '/order/pg/tradel/form', NULL, 1004, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C20', 'C', '배송관리', 'M', NULL, NULL, 20, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C2001', 'C20', '출고금지상품관리', 'P', '/delivery/ban/goods/form', NULL, 2001, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C2002', 'C20', '출고처지정관리', 'P', '/delivery/assign/form', NULL, 2002, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C2003', 'C20', '배송메모', 'P', '/delivery/memo/form', NULL, 2003, 'N', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C2004', 'C20', '배송목록', 'P', '/delivery/list/form', NULL, 2004, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C', 'ROOT',    '주문/배송',       'M', NULL, NULL, 3, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C10',   'C',   '주문관리',        'M', NULL, NULL, 10, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C1001', 'C10', '주문목록',        'P', '/order/list/form', 					NULL, 1001, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C1002', 'C10', '제휴몰주문가격확인', 'P', '/order/extmall/price/confirm/form', 	NULL, 1002, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C1003', 'C10', '입점미발주목록',    'P', '/order/seller/unorder/list/form', 	NULL, 1003, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C1004', 'C10', 'PG승인대사',      'P', '/order/pg/tradel/form', 		 NULL, 1004, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C20',   'C',   '배송관리',        'M', NULL, 	NULL, 20, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C2001', 'C20', '출고금지상품관리',  'P', '/delivery/ban/goods/form', 	 NULL, 2001, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C2002', 'C20', '출고처지정관리',    'P', '/delivery/assign/form', 		 NULL, 2002, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C2003', 'C20', '배송메모', 'P',   '/delivery/memo/form', 				 NULL, 2003, 'N', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C2004', 'C20', '배송목록', 'P',   '/delivery/list/form', 				 NULL, 2004, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('C2005', 'C20', '배송/회수지시목록', 'P', '/delivery/dwdirect/list/form', NULL, 2005, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('C2005', 'C20', '배송/회수지시목록', 'P', '/delivery/dwdirect/list/form', NULL, 2005, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C30', 'C', '회수관리', 'M', NULL, NULL, 30, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C3001', 'C30', '회수등록', 'P', '/withdraw/register/form', NULL, 3001, 'Y', 1, NOW(), 1, NOW());
-INSERT INTO TB_MENU VALUES ('C3002', 'C30', '회수컨펌', 'P', '/withdraw/confirm/form', NULL, 3002, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C30',   'C',   '회수관리',        'M', NULL, NULL, 30, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C3001', 'C30', '회수등록',        'P', '/withdraw/register/form',		 NULL, 3001, 'N', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C3002', 'C30', '환불컨펌',        'P', '/withdraw/refund/form', 		 NULL, 3005, 'Y', 1, NOW(), 1, NOW());
+INSERT INTO TB_MENU VALUES ('C3003', 'C30', 'WMS회수목록',     'P','/withdraw/wms/list/form',      NULL,3003,'Y',1,NOW(),1,NOW());
+INSERT INTO TB_MENU VALUES ('C3004', 'C30', 'WMS회수예외관리',  'P','/withdraw/exception/form',     NULL,3004,'Y',1,NOW(),1,NOW());
+INSERT INTO TB_MENU VALUES ('C3005', 'C30', '회수지시목록',     'P','/withdraw/directive/form',     NULL,3000,'Y',1,NOW(),1,NOW());
 
 
 INSERT INTO TB_MENU VALUES ('D', 'ROOT', '회원/마케팅', 'M', NULL, NULL, 4, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('D', 'ROOT', '회원/마케팅', 'M', NULL, NULL, 4, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('D10', 'D', '회원관리', 'M', NULL, NULL, 10, 'Y', 1, NOW(), 1, NOW());
 INSERT INTO TB_MENU VALUES ('D10', 'D', '회원관리', 'M', NULL, NULL, 10, 'Y', 1, NOW(), 1, NOW());
@@ -4968,7 +4989,7 @@ CREATE TABLE TB_MENU_ACCESS_HST
   MENU_ACCESS_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '메뉴접속일련번호',
   MENU_ACCESS_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '메뉴접속일련번호',
   USER_NO        INT UNSIGNED NOT NULL COMMENT '사용자번호(사용자)',
   USER_NO        INT UNSIGNED NOT NULL COMMENT '사용자번호(사용자)',
   MENU_ID        VARCHAR(20) NOT NULL COMMENT '메뉴ID(메뉴)',
   MENU_ID        VARCHAR(20) NOT NULL COMMENT '메뉴ID(메뉴)',
-  REQ_URL        VARCHAR(500) COMMENT '요청URL',
+  REQ_URL        VARCHAR(4000) COMMENT '요청URL',
   PARAMS         LONGTEXT COMMENT '파라미터',
   PARAMS         LONGTEXT COMMENT '파라미터',
   REG_NO         INT UNSIGNED NOT NULL COMMENT '등록자번호',
   REG_NO         INT UNSIGNED NOT NULL COMMENT '등록자번호',
   REG_DT         TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '등록일시',
   REG_DT         TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '등록일시',
@@ -7309,6 +7330,8 @@ CREATE TABLE TB_AD_KEYWORD_GOODS (
   DISP_ORD       TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
   DISP_ORD       TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
   REG_NO         INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
   REG_NO         INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
   REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
   REG_DT         TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
+  UPD_NO           INT UNSIGNED NOT NULL COMMENT '수정자번호', -- 수정자번호
+  UPD_DT           TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시', -- 수정일시
   PRIMARY KEY (AD_KEYWORD_SQ, GOODS_CD),
   PRIMARY KEY (AD_KEYWORD_SQ, GOODS_CD),
   INDEX IX_AD_KEYWORD_GOODS_01 (GOODS_CD)
   INDEX IX_AD_KEYWORD_GOODS_01 (GOODS_CD)
 )
 )
@@ -12261,73 +12284,55 @@ ALTER TABLE TB_CART_DETAIL
 # 장바구니이력
 # 장바구니이력
 ################################################################################
 ################################################################################
 DROP TABLE IF EXISTS TB_CART_HST RESTRICT;
 DROP TABLE IF EXISTS TB_CART_HST RESTRICT;
-CREATE TABLE TB_CART_HST (
-  CART_DTL_SQ  INT UNSIGNED NOT NULL COMMENT '장바구니이력일련번호', -- 장바구니이력일련번호
-  CART_GB      VARCHAR(20)  NOT NULL COMMENT '장바구니구분(공통코드G026)', -- 장바구니구분(공통코드G026)
-  GOODS_CD     VARCHAR(20)  NOT NULL COMMENT '상품코드', -- 상품코드
-  GOODS_QTY    SMALLINT     NOT NULL DEFAULT 0 COMMENT '수량',
-  DEAL_GOODS_CD VARCHAR(20) NULL COMMENT '딜상품코드',
-  ORD_NO       INT UNSIGNED NOT NULL COMMENT '주문번호', -- 주문번호
-  CUST_NO      INT UNSIGNED NULL     COMMENT '고객번호', -- 고객번호
-  AF_LINK_CD   VARCHAR(20)  NULL     COMMENT '제휴링크코드', -- 제휴링크코드
-  ITHR_CD      VARCHAR(20)  NULL     COMMENT '유입경로(공통코드G027)', -- 유입경로(공통코드G027)
-  CONTENTS_LOC VARCHAR(20)  NULL     COMMENT '컨텐츠위치(공통코드G028)', -- 컨텐츠위치(공통코드G028)
-  PLAN_DTL_SQ  INT UNSIGNED NULL     COMMENT '기획전상세번호', -- 기획전상세번호
-  REG_NO       INT UNSIGNED NOT NULL COMMENT '등록자번호', -- 등록자번호
-  REG_DT       TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시' -- 등록일시
-)
-COMMENT '장바구니이력. 결제완료 시 장바구니 이력 생성에 의한 발생';
-
--- 장바구니이력
-ALTER TABLE TB_CART_HST
-  ADD CONSTRAINT PK_CART_HST -- 장바구니이력 기본키
-    PRIMARY KEY (
-      CART_DTL_SQ -- 장바구니이력일련번호
-    );
-
--- 장바구니이력 인덱스
-CREATE INDEX IX_CART_HST_01
-  ON TB_CART_HST( -- 장바구니이력
-    CUST_NO ASC -- 고객번호
-  );
-
--- 장바구니이력 인덱스2
-CREATE INDEX IX_CART_HST_02
-  ON TB_CART_HST( -- 장바구니이력
-    ORD_NO ASC -- 주문번호
-  );
-
-ALTER TABLE TB_CART_HST
-  MODIFY COLUMN CART_DTL_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '장바구니이력일련번호';
-
-ALTER TABLE TB_CART_HST
-  AUTO_INCREMENT = 1;
+CREATE TABLE TB_CART_HST
+(
+    CART_SQ       int unsigned                        null comment '장바구니이력일련번호',
+    CART_GB       varchar(20)                         not null comment '장바구니구분(공통코드G026)',
+    GOODS_CD      varchar(20)                         not null comment '상품코드',
+    PRODUCT_NO    int unsigned                        null comment 'ProductNo(WMS)',
+    PRODUCT_CODE  varchar(50)                         null comment 'ProductCode(WMS)',
+    GOODS_QTY     smallint  default 0                 not null comment '수량',
+    DEAL_GOODS_CD varchar(20)                         null comment '딜상품코드',
+    ORD_NO        int unsigned                        not null comment '주문번호',
+    CUST_NO       int unsigned                        null comment '고객번호',
+    AF_LINK_CD    varchar(20)                         null comment '제휴링크코드',
+    ITHR_CD       varchar(20)                         null comment '유입경로(공통코드G027)',
+    CONTENTS_LOC  varchar(20)                         null comment '컨텐츠위치(공통코드G028)',
+    PLAN_DTL_SQ   int unsigned                        null comment '기획전상세번호',
+    REG_NO        int unsigned                        not null comment '등록자번호',
+    REG_DT        timestamp default CURRENT_TIMESTAMP not null comment '등록일시'
+)
+    comment '장바구니이력. 결제완료 시 장바구니 이력 생성에 의한 발생';
+
+create index IX_CART_HST_01
+    on tb_cart_hst (CUST_NO);
+
+create index IX_CART_HST_02
+    on tb_cart_hst (ORD_NO);
 
 
 ################################################################################
 ################################################################################
 # 장바구니상세이력
 # 장바구니상세이력
 ################################################################################
 ################################################################################
 DROP TABLE IF EXISTS TB_CART_DETAIL_HST RESTRICT;
 DROP TABLE IF EXISTS TB_CART_DETAIL_HST RESTRICT;
-CREATE TABLE TB_CART_DETAIL_HST (
-  CART_DTL_SQ INT UNSIGNED      NOT NULL COMMENT '장바구니이력일련번호', -- 장바구니이력일련번호
-  ITEM_CD     VARCHAR(20)       NOT NULL COMMENT '단품코드(상품). 일반상품과 딜상품은 상품코드와 동일', -- 단품코드
-  OPT_CD      VARCHAR(200)      NOT NULL COMMENT '옵션코드', -- 옵션코드
-  OPT_CD1     VARCHAR(200)      NULL     COMMENT '옵션코드1', -- 옵션코드1
-  OPT_CD2     VARCHAR(200)      NULL     COMMENT '옵션코드2', -- 옵션코드2
-  SKU_MODEL_NO   VARCHAR(50)       NULL COMMENT 'SKUModelNo(WMS)',
-  PRODUCT_NO     INT UNSIGNED      NULL COMMENT 'ProductNo(WMS)',
-  PRODUCT_CODE   VARCHAR(50)       NULL COMMENT 'ProductCode(WMS)',
-  ITEM_QTY    SMALLINT UNSIGNED NOT NULL COMMENT '단품수량', -- 단품수량
-  REG_NO      INT UNSIGNED      NOT NULL COMMENT '등록자번호', -- 등록자번호
-  REG_DT      TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시' -- 등록일시
+CREATE TABLE TB_CART_DETAIL_HST
+(
+    CART_DTL_SQ  int unsigned                        not null comment '장바구니이력일련번호',
+    CART_SQ      int unsigned                        not null comment '장바구니일련번호',
+    ITEM_CD      varchar(20)                         not null comment '단품코드(상품). 일반상품과 딜상품은 상품코드와 동일',
+    OPT_CD       varchar(200)                        not null comment '옵션코드',
+    OPT_CD1      varchar(200)                        null comment '옵션코드1',
+    OPT_CD2      varchar(200)                        null comment '옵션코드2',
+    SKU_MODEL_NO varchar(50)                         null comment 'SKUModelNo(WMS)',
+    PRODUCT_NO   int unsigned                        null comment 'ProductNo(WMS)',
+    PRODUCT_CODE varchar(50)                         null comment 'ProductCode(WMS)',
+    ITEM_QTY     smallint unsigned                   not null comment '단품수량',
+    REG_NO       int unsigned                        not null comment '등록자번호',
+    REG_DT       timestamp default CURRENT_TIMESTAMP not null comment '등록일시'
 )
 )
-COMMENT '장바구니상세이. 결제완료 시 장바구니 이력 생성에 의한 발생';
+    comment '장바구니상세이. 결제완료 시 장바구니 이력 생성에 의한 발생';
 
 
--- 장바구니상세이력 인덱스
-CREATE INDEX IX_CART_DETAIL_HST_01
-  ON TB_CART_DETAIL_HST( -- 장바구니상세이력
-    CART_DTL_SQ ASC, -- 장바구니이력일련번호
-    ITEM_CD ASC      -- 단품코드
-  );
+create index IX_CART_DETAIL_HST_01
+    on tb_cart_detail_hst (CART_DTL_SQ, ITEM_CD);
 
 
 ################################################################################
 ################################################################################
 # 카테고리 1
 # 카테고리 1
@@ -14513,6 +14518,12 @@ ALTER TABLE TB_COUPON_AF_CHANNEL
       CPN_ID,    -- 쿠폰ID
       CPN_ID,    -- 쿠폰ID
       AF_LINK_CD  -- 제휴채널(공통코드G053)
       AF_LINK_CD  -- 제휴채널(공통코드G053)
     );
     );
+    
+-- 쿠폰이용가능유입채널 인덱스
+CREATE INDEX IX_COUPON_AF_CHANNEL_01
+  ON TB_COUPON_AF_CHANNEL( 
+    AF_LINK_CD ASC 
+  );
 
 
 ################################################################################
 ################################################################################
 # 다다익선
 # 다다익선
@@ -14996,7 +15007,7 @@ ALTER TABLE TB_ORD_FREEGIFT_VAL
 DROP TABLE IF EXISTS TB_ORD_FREEGIFT_DTL RESTRICT;
 DROP TABLE IF EXISTS TB_ORD_FREEGIFT_DTL RESTRICT;
 CREATE TABLE TB_ORD_FREEGIFT_DTL (
 CREATE TABLE TB_ORD_FREEGIFT_DTL (
   ORD_FREEGIFT_DTL_SQ INT UNSIGNED NOT NULL COMMENT '주문사은품상세일련번호', -- 주문사은품상세일련번호
   ORD_FREEGIFT_DTL_SQ INT UNSIGNED NOT NULL COMMENT '주문사은품상세일련번호', -- 주문사은품상세일련번호
-  ORD_FREEGIFT_VAL_SQ INT UNSIGNED NOT NULL COMMENT '주문사은품혜택일련번호', -- 주문사은품혜택일련번호
+  ORD_FREEGIFT_SQ     INT          NOT NULL COMMENT '주문사은품마스터번호', -- 주문사은품마스터번호
   FREEGIFT_SQ         INT UNSIGNED NOT NULL COMMENT '사은품프로모션일련번호', -- 사은품프로모션일련번호
   FREEGIFT_SQ         INT UNSIGNED NOT NULL COMMENT '사은품프로모션일련번호', -- 사은품프로모션일련번호
   ORD_NO              INT UNSIGNED NOT NULL COMMENT '주문번호', -- 주문번호
   ORD_NO              INT UNSIGNED NOT NULL COMMENT '주문번호', -- 주문번호
   ORD_DTL_NO          INT UNSIGNED NOT NULL COMMENT '주문상세번호 (상세번호가 취소 될때 마다 사은품 회수 계획)', -- 주문상세번호
   ORD_DTL_NO          INT UNSIGNED NOT NULL COMMENT '주문상세번호 (상세번호가 취소 될때 마다 사은품 회수 계획)', -- 주문상세번호
@@ -15018,7 +15029,7 @@ ALTER TABLE TB_ORD_FREEGIFT_DTL
 -- 주문사은품상세 인덱스
 -- 주문사은품상세 인덱스
 CREATE INDEX IX_ORD_FREEGIFT_DTL_01
 CREATE INDEX IX_ORD_FREEGIFT_DTL_01
   ON TB_ORD_FREEGIFT_DTL( -- 주문사은품상세
   ON TB_ORD_FREEGIFT_DTL( -- 주문사은품상세
-    ORD_FREEGIFT_VAL_SQ ASC -- 주문사은품혜택일련번호
+    ORD_FREEGIFT_SQ -- 주문사은품혜택일련번호
   );
   );
 
 
 -- 주문사은품상세 인덱스2
 -- 주문사은품상세 인덱스2
@@ -15028,11 +15039,12 @@ CREATE INDEX IX_ORD_FREEGIFT_DTL_02
   );
   );
 
 
 -- 주문사은품상세 인덱스3
 -- 주문사은품상세 인덱스3
-CREATE INDEX IX_ORD_FREEGIFT_DTL_03
-  ON TB_ORD_FREEGIFT_DTL( -- 주문사은품상세
-    ORD_NO ASC,     -- 주문번호
-    ORD_DTL_NO ASC  -- 주문상세번호
-  );
+CREATE INDEX IX_TB_ORD_FREEGIFT_DTL_03
+    ON TB_ORD_FREEGIFT_DTL (ORD_NO);
+
+-- 주문사은품상세 인덱스4
+CREATE INDEX IX_TB_ORD_FREEGIFT_DTL_04
+    ON TB_ORD_FREEGIFT_DTL (ORD_DTL_NO);
 
 
 ALTER TABLE TB_ORD_FREEGIFT_DTL
 ALTER TABLE TB_ORD_FREEGIFT_DTL
   MODIFY COLUMN ORD_FREEGIFT_DTL_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '주문사은품상세일련번호';
   MODIFY COLUMN ORD_FREEGIFT_DTL_SQ INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '주문사은품상세일련번호';
@@ -15307,7 +15319,11 @@ CREATE TABLE TB_ORDER_RECALL_EXCEPTION
 	DATE_CREATED TIMESTAMP NULL COMMENT '생성일자',
 	DATE_CREATED TIMESTAMP NULL COMMENT '생성일자',
 	USER_ID_MODIFIED VARCHAR(50) NULL COMMENT '수정자ID',
 	USER_ID_MODIFIED VARCHAR(50) NULL COMMENT '수정자ID',
 	USER_NAME_MODIFIED VARCHAR(50) NULL COMMENT '수정자명',
 	USER_NAME_MODIFIED VARCHAR(50) NULL COMMENT '수정자명',
-	DATE_LAST_MODIFIED TIMESTAMP NULL COMMENT '수정일자'
+	DATE_LAST_MODIFIED TIMESTAMP NULL COMMENT '수정일자',
+	CS_ADD_FEE INT NULL COMMENT '추가비용',
+	CS_MEMO VARCHAR(2000) NULL COMMENT 'C/S메모',
+	REG_NO INT UNSIGNED NOT NULL COMMENT '등록자NO',
+	REG_DT TIMESTAMP NOT NULL COMMENT '등록일시'	
 )
 )
 COMMENT '회수예외 (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 COMMENT '회수예외 (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 
 
@@ -15337,7 +15353,11 @@ CREATE TABLE TB_ORDER_RECALL_EXCEPTION_ITEM
 	SKU_CODE VARCHAR(50) NULL COMMENT '옵션코드',
 	SKU_CODE VARCHAR(50) NULL COMMENT '옵션코드',
 	SKU_VALUE VARCHAR(100) NULL COMMENT '옵션내용',
 	SKU_VALUE VARCHAR(100) NULL COMMENT '옵션내용',
 	EXCEPTION_QTY INT NULL COMMENT '예외수량',
 	EXCEPTION_QTY INT NULL COMMENT '예외수량',
-	REASON_CD VARCHAR(100) NULL COMMENT '예외사유'
+	REASON_CD VARCHAR(100) NULL COMMENT '예외사유',
+	QTY INT UNSIGNED NULL COMMENT '주문수량',
+	REASON_CODE VARCHAR(20) NULL COMMENT '사유코드G325',
+	REG_NO INT UNSIGNED NOT NULL COMMENT '등록자NO',
+	REG_DT TIMESTAMP NOT NULL COMMENT '등록일시'	
 )
 )
 COMMENT '회수예외 상세  (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 COMMENT '회수예외 상세  (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 
 
@@ -15360,7 +15380,9 @@ CREATE TABLE TB_ORDER_RECALL_EXCEPTION_MEMO
 	ADMIN_MEMO VARCHAR(2000) NULL COMMENT '메모내용',
 	ADMIN_MEMO VARCHAR(2000) NULL COMMENT '메모내용',
 	USER_ID_CREATED VARCHAR(50) NULL COMMENT '생성자ID',
 	USER_ID_CREATED VARCHAR(50) NULL COMMENT '생성자ID',
 	USER_NAME_CREATED VARCHAR(50) NULL COMMENT '생성자명',
 	USER_NAME_CREATED VARCHAR(50) NULL COMMENT '생성자명',
-	DATE_CREATED TIMESTAMP NOT NULL COMMENT '생성일'
+	DATE_CREATED TIMESTAMP NOT NULL COMMENT '생성일',
+	REG_NO INT UNSIGNED NOT NULL COMMENT '등록자NO',
+	REG_DT TIMESTAMP NOT NULL COMMENT '등록일시'		
 )
 )
 COMMENT '회수예외 메모 (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 COMMENT '회수예외 메모 (WMS에서 검수시 예외케이스 IF_TB에 생성)';
 
 
@@ -15392,24 +15414,30 @@ DROP TABLE IF EXISTS AUTOMAIL_INTERFACE RESTRICT;
 CREATE TABLE AUTOMAIL_INTERFACE
 CREATE TABLE AUTOMAIL_INTERFACE
 (
 (
     AUTOCODE    INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '자동메일코드',
     AUTOCODE    INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '자동메일코드',
-    LEGACYID    VARCHAR(200) COMMENT '회원ID',
+    LEGACYID    VARCHAR(30) DEFAULT '-' NOT NULL COMMENT '회원ID',
     AUTOTYPE    VARCHAR(3) NOT NULL COMMENT '자동메일타입',
     AUTOTYPE    VARCHAR(3) NOT NULL COMMENT '자동메일타입',
     EMAIL       VARCHAR(100) NOT NULL COMMENT '이메일',
     EMAIL       VARCHAR(100) NOT NULL COMMENT '이메일',
     NAME        VARCHAR(100) COMMENT '이름',
     NAME        VARCHAR(100) COMMENT '이름',
     INSERTDATE  DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '입력일시',
     INSERTDATE  DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '입력일시',
-    SENDTIME    DATETIME NULL COMMENT '전송일시',
+    SENDTIME    DATETIME NULL COMMENT '예약전송일시',
     OPENTIME    DATETIME NULL COMMENT '오픈일시',
     OPENTIME    DATETIME NULL COMMENT '오픈일시',
     SENTTIME    DATETIME NULL COMMENT '전송완료일시',
     SENTTIME    DATETIME NULL COMMENT '전송완료일시',
     SENDYN      CHAR(1) DEFAULT 'N' NOT NULL COMMENT '전송여부',
     SENDYN      CHAR(1) DEFAULT 'N' NOT NULL COMMENT '전송여부',
     CMPNCODE    INT UNSIGNED COMMENT '캠페인코드',
     CMPNCODE    INT UNSIGNED COMMENT '캠페인코드',
-    FROMADDRESS VARCHAR(100) COMMENT '보내는주소',
-    FROMNAME    VARCHAR(100) COMMENT '보내는',
+    FROMADDRESS VARCHAR(100) COMMENT '보내는사람메일주소',
+    FROMNAME    VARCHAR(100) COMMENT '보내는사람이름',
     TITLE       VARCHAR(200) COMMENT '메일제목',
     TITLE       VARCHAR(200) COMMENT '메일제목',
     CONTENT     LONGTEXT NOT NULL COMMENT '메일내용',
     CONTENT     LONGTEXT NOT NULL COMMENT '메일내용',
     TAG1        VARCHAR(100) COMMENT 'TAG1',
     TAG1        VARCHAR(100) COMMENT 'TAG1',
     TAG2        VARCHAR(100) COMMENT 'TAG2',
     TAG2        VARCHAR(100) COMMENT 'TAG2',
     TAG3        VARCHAR(100) COMMENT 'TAG3',
     TAG3        VARCHAR(100) COMMENT 'TAG3',
     TAG4        VARCHAR(100) COMMENT 'TAG4',
     TAG4        VARCHAR(100) COMMENT 'TAG4',
+    TAG5        VARCHAR(100) COMMENT 'TAG5',
+    TAG6        VARCHAR(100) COMMENT 'TAG6',
+    TAG7        VARCHAR(100) COMMENT 'TAG7',
+    TAG8        VARCHAR(100) COMMENT 'TAG8',
+    TAG9        VARCHAR(100) COMMENT 'TAG9',
+    TAG10       VARCHAR(100) COMMENT 'TAG10',
     PRIMARY KEY (AUTOCODE)
     PRIMARY KEY (AUTOCODE)
 ) DEFAULT CHARSET=euckr COLLATE=euckr_korean_ci COMMENT='자동메일I/F. 메일 등록에 의한 발생. 데이터 적재 시 넷퍼시에서 자동으로 메일 발송함'
 ) DEFAULT CHARSET=euckr COLLATE=euckr_korean_ci COMMENT='자동메일I/F. 메일 등록에 의한 발생. 데이터 적재 시 넷퍼시에서 자동으로 메일 발송함'
 ;
 ;
@@ -15489,3 +15517,117 @@ CREATE INDEX IX_VW_STOCK_01
   ON VW_STOCK( -- 옵션
   ON VW_STOCK( -- 옵션
     OPT_CD1 ASC -- 옵션명1
     OPT_CD1 ASC -- 옵션명1
   );
   );
+
+################################################################################
+# 상품권대량등록
+################################################################################
+CREATE TABLE TB_GFCD_BULK_REG (
+   GFCD_BULK_REG_SQ INT UNSIGNED AUTO_INCREMENT COMMENT '대량등록일련번호' PRIMARY KEY
+ , CUST_ID          VARCHAR(30)                            NOT NULL COMMENT '고객ID'
+ , GFCD_NO          VARCHAR(50)                            NOT NULL COMMENT '상품권번호'
+ , GFCD_API_HST_SQ  INT                                    NULL COMMENT '상품권API이력일련번호'
+ , RESULT_MSG       VARCHAR(50)                            NULL COMMENT  '결과메시지'
+ , REG_NO           INT UNSIGNED                           NOT NULL COMMENT '등록자번호'
+ , REG_DT           TIMESTAMP    DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '등록일시'
+ , UPD_NO           INT UNSIGNED                           NOT NULL COMMENT '수정자번호'
+ , UPD_DT           TIMESTAMP    DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '수정일시'
+)
+COMMENT '상품권대량. 어드민 상품권대량 업로드 시 발생'
+;
+CREATE INDEX IX_GFCD_BULK_REG_01 ON TB_GFCD_BULK_REG (REG_DT);
+
+################################################################################
+# 최근본상품
+################################################################################
+DROP TABLE IF EXISTS TB_RECENTLY_GOODDS RESTRICT;
+CREATE TABLE TB_RECENTLY_GOODDS (
+  RGOODS_SQ    INT UNSIGNED AUTO_INCREMENT COMMENT '최근본상품일련번호',
+  GOODS_CD     VARCHAR(20) NOT NULL COMMENT '상품코드(상품)',
+  JSESSION_ID  VARCHAR(200) COMMENT 'J세션ID',
+  CUST_NO      INT UNSIGNED COMMENT '고객번호(고객)',
+  REG_DT       TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '등록일시',
+  UPD_DT       TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '수정일시',
+  PRIMARY KEY (RGOODS_SQ),
+  INDEX IX_RECENTLY_GOODS_01 (JSESSION_ID, GOODS_CD),
+  INDEX IX_RECENTLY_GOODS_02 (CUST_NO, GOODS_CD)
+)
+COMMENT '최근본상품. 로그인 시 쿠키에 저장된 최근본상품을 등록하거나 고객이 상품상세 유입 시 해당상품 등록에 의한 발생'
+;
+
+################################################################################
+# 재고체크 임시 테이블
+################################################################################
+CREATE TABLE TB_DELIVERY_LOC_TMP
+(
+    USE_GB            VARCHAR(10)   NOT NULL COMMENT '사용구분',
+    DELV_LOC_CD       VARCHAR(20)   NOT NULL COMMENT '출고처코드',
+    DELV_ASSIGN_ORD   INT           NULL COMMENT '출고처지정순서',
+    LOC_QTY           INT           NULL COMMENT '재고수량',
+    GOODS_LOC_CNT     INT           NULL COMMENT '상품 카운트',
+    GOODS_LOC_SET_CNT INT           NULL COMMENT '세트상품 카운트',
+    ORD_DTL_NO_LIST   VARCHAR(2000) NULL COMMENT '주문상세번호리스트',
+    PRIMARY KEY (USE_GB, DELV_LOC_CD)
+)
+COMMENT '재고체크 임시 테이블';
+
+################################################################################
+# 회수
+################################################################################
+CREATE TABLE TB_WITHDRAW
+(
+    WD_INVOICE_NO    VARCHAR(20)      NOT NULL COMMENT '회수송장번호',
+    ORD_CHG_SQ       INT UNSIGNED     NOT NULL COMMENT '주문변경번호',
+    SENDER_NM        VARCHAR(50)      NULL COMMENT '발송자명',
+    SENDER_PHNNO     VARCHAR(20)      NULL COMMENT '발송자휴대전화번호',
+    SENDER_TELNO     VARCHAR(20)      NULL COMMENT '발송자전화번호',
+    SENDER_POST_NO   VARCHAR(6)       NULL COMMENT '발송자우편번호',
+    SENDER_BASE_ADDR VARCHAR(300)     NULL COMMENT '발송자기본주소',
+    SENDER_DTL_ADDR  VARCHAR(200)     NULL COMMENT '발송자상세주소',
+    SHIP_COMP_CD     VARCHAR(20)      NULL COMMENT '배송업체코드(배송업체)',
+    WD_REQ_REASON    VARCHAR(20)      NULL COMMENT '회수요청사유(공통코드)',
+    WD_FEE           INT  DEFAULT 0   NULL COMMENT '회수비',
+    COD_FEE          INT  DEFAULT 0   NULL COMMENT '착불비',
+    ENCLOSE_FEE      INT  DEFAULT 0   NULL COMMENT '동봉비',
+    WD_MEMO          VARCHAR(1000)    NULL COMMENT '회수메모',
+    SAME_YN          CHAR DEFAULT 'N' NOT NULL COMMENT '동일여부',
+    ARRIVAL_DT       TIMESTAMP        NULL COMMENT '도착일시',
+    CS_MEMO          VARCHAR(1000)    NULL COMMENT 'CS메모',
+    CS_OB_YN         CHAR DEFAULT 'N' NOT NULL COMMENT 'CS아웃바운드여부',
+    CS_OB_DT         TIMESTAMP        NULL COMMENT 'CS아웃바운드일시',
+    CS_OB_ID         INT UNSIGNED     NULL COMMENT 'CS아웃바운드ID(사용자)',
+    SMS_SEND_YN      CHAR DEFAULT 'N' NOT NULL COMMENT 'SMS발송여부',
+    REG_NO           INT UNSIGNED     NOT NULL COMMENT '등록자NO',
+    REG_DT           TIMESTAMP        NOT NULL COMMENT '등록일시',
+    UPD_NO           INT UNSIGNED     NOT NULL COMMENT '수정자NO',
+    UPD_DT           TIMESTAMP        NOT NULL COMMENT '수정일시',
+    PRIMARY KEY (WD_INVOICE_NO, ORD_CHG_SQ)
+)
+COMMENT '회수. 교환 및 반품건의 실물 회수 완료에 의한 발생';
+
+
+################################################################################
+# 회수 상세 
+################################################################################
+CREATE TABLE TB_WITHDRAW_DETAIL
+(
+    WD_INVOICE_NO VARCHAR(20)  NOT NULL COMMENT '회수송장번호',
+    ORD_CHG_SQ    INT UNSIGNED NOT NULL COMMENT '주문변경번호',
+    GOODS_CD      VARCHAR(20)  NOT NULL COMMENT '상품코드',
+    OPT_CD1       VARCHAR(20)  NOT NULL COMMENT '옵션코드1(컬러)',
+    OPT_CD2       VARCHAR(20)  NOT NULL COMMENT '옵션코드2(사이즈)',
+    ORD_DTL_NO    INT UNSIGNED NOT NULL COMMENT '주문상세번호',
+    WD_QTY        INT          NULL COMMENT '회수수량',
+    RTN_LOC_CD    VARCHAR(20)  NULL COMMENT '반품처코드(반품처)',
+    SELL_STORE_CD VARCHAR(20)  NULL COMMENT '판매매장코드(판매매장)',
+    REG_NO        INT UNSIGNED NOT NULL COMMENT '등록자NO',
+    REG_DT        TIMESTAMP    NOT NULL COMMENT '등록일시',
+    UPD_NO        INT UNSIGNED NOT NULL COMMENT '수정자NO',
+    UPD_DT        TIMESTAMP    NOT NULL COMMENT '수정일시',
+    PRIMARY KEY (WD_INVOICE_NO, ORD_CHG_SQ, GOODS_CD, OPT_CD1, OPT_CD2)
+)
+COMMENT '회수상세. 교환 및 반품건의 실물 회수 완료에 의한 발생';
+
+CREATE INDEX TB_WITHDRAW_DETAIL_ORD_DTL_NO_IDX
+    ON TB_WITHDRAW_DETAIL (ORD_DTL_NO, WD_INVOICE_NO, GOODS_CD, OPT_CD1, OPT_CD2);
+
+

+ 14 - 0
산출물/4.구축/데이터처리/03.전시카테고리생성(TB_CATE_4SRCH).sql

@@ -687,6 +687,7 @@ VALUES
 
 
 INSERT INTO TB_CATE2 (CATE2_NO,CATE2_NM,SITE_CD,CATE_GB,CATE1_NO,CATE_TYPE,LEAF_YN,DISP_ORD,FORMAL_GB,CONTENTS_LOC,DISP_YN,USE_YN,REG_NO,REG_DT,UPD_NO,UPD_DT)
 INSERT INTO TB_CATE2 (CATE2_NO,CATE2_NM,SITE_CD,CATE_GB,CATE1_NO,CATE_TYPE,LEAF_YN,DISP_ORD,FORMAL_GB,CONTENTS_LOC,DISP_YN,USE_YN,REG_NO,REG_DT,UPD_NO,UPD_DT)
 VALUES
 VALUES
+<<<<<<< HEAD
 	 (2001,'신상품','G000_10','G032_101',1100,'G031_20','Y',2001,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
 	 (2001,'신상품','G000_10','G032_101',1100,'G031_20','Y',2001,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
 	 (2002,'베스트','G000_10','G032_101',1100,'G031_20','Y',2002,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
 	 (2002,'베스트','G000_10','G032_101',1100,'G031_20','Y',2002,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
 	 (2003,'신상품','G000_10','G032_101',1200,'G031_20','Y',2003,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
 	 (2003,'신상품','G000_10','G032_101',1200,'G031_20','Y',2003,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
@@ -698,6 +699,19 @@ VALUES
 	 (2009,'신상품','G000_10','G032_101',1600,'G031_20','Y',2009,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
 	 (2009,'신상품','G000_10','G032_101',1600,'G031_20','Y',2009,'G009_10','SCM001','Y','Y',12,NOW(),12,NOW()),
 	 (2010,'베스트','G000_10','G032_101',1600,'G031_20','Y',2010,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
 	 (2010,'베스트','G000_10','G032_101',1600,'G031_20','Y',2010,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
 	 (1701,'기획전','G000_10','G032_101',1700,'G031_20','Y',1701,'G009_10','SMM002','Y','Y',12,NOW(),12,NOW()),
 	 (1701,'기획전','G000_10','G032_101',1700,'G031_20','Y',1701,'G009_10','SMM002','Y','Y',12,NOW(),12,NOW()),
+=======
+	 (2001,'신상품','G000_10','G032_101',1100,'G031_20','Y',2001,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
+	 (2002,'베스트','G000_10','G032_101',1100,'G031_20','Y',2002,'G009_10','SCM003','Y','Y',12,NOW(),12,NOW()),
+	 (2003,'신상품','G000_10','G032_101',1200,'G031_20','Y',2003,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
+	 (2004,'베스트','G000_10','G032_101',1200,'G031_20','Y',2004,'G009_10','SCM003','Y','Y',12,NOW(),12,NOW()),
+	 (2005,'신상품','G000_10','G032_101',1300,'G031_20','Y',2005,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
+	 (2006,'베스트','G000_10','G032_101',1300,'G031_20','Y',2006,'G009_10','SCM003','Y','Y',12,NOW(),12,NOW()),
+	 (2007,'신상품','G000_10','G032_101',1500,'G031_20','Y',2007,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
+	 (2008,'베스트','G000_10','G032_101',1500,'G031_20','Y',2008,'G009_10','SCM003','Y','Y',12,NOW(),12,NOW()),
+	 (2009,'신상품','G000_10','G032_101',1600,'G031_20','Y',2009,'G009_10','SCM002','Y','Y',12,NOW(),12,NOW()),
+	 (2010,'베스트','G000_10','G032_101',1600,'G031_20','Y',2010,'G009_10','SCM003','Y','Y',12,NOW(),12,NOW()),
+	 (1701,'기획전','G000_10','G032_101',1700,'G031_20','Y',1701,'G009_10','SMM002','Y','Y',12,NOW(),12,NOW()),	 
+>>>>>>> 36c0e11aa64be8eb9cfeadd164695ed68dfe22f3
 	 (1702,'신상품','G000_10','G032_101',1700,'G031_20','Y',1702,'G009_10','SMM003','Y','Y',12,NOW(),12,NOW()),
 	 (1702,'신상품','G000_10','G032_101',1700,'G031_20','Y',1702,'G009_10','SMM003','Y','Y',12,NOW(),12,NOW()),
 	 (1703,'베스트타이틀','G000_10','G032_101',1700,'G031_20','Y',1703,'G009_10','SMM004','Y','Y',12,NOW(),12,NOW()),
 	 (1703,'베스트타이틀','G000_10','G032_101',1700,'G031_20','Y',1703,'G009_10','SMM004','Y','Y',12,NOW(),12,NOW()),
 	 (1704,'핫딜','G000_10','G032_101',1700,'G031_20','Y',1704,'G009_10','SMM006','Y','Y',12,NOW(),12,NOW()),
 	 (1704,'핫딜','G000_10','G032_101',1700,'G031_20','Y',1704,'G009_10','SMM006','Y','Y',12,NOW(),12,NOW()),

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

@@ -15,7 +15,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -144,7 +144,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -276,7 +276,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -433,7 +433,8 @@ WITH TAB_FILTER AS (
             GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE5_NO
             GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE5_NO
            ) Z
            ) Z
 )
 )
-SELECT SITE_CD
+SELECT DISTINCT
+       SITE_CD
      , CATE_GB
      , CATE_GB
      , FORMAL_GB
      , FORMAL_GB
      , BRAND_GROUP_NO
      , BRAND_GROUP_NO
@@ -442,7 +443,7 @@ SELECT SITE_CD
      , FILTER_CD
      , FILTER_CD
      , FILTER_NM
      , FILTER_NM
      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
-                   ORDER BY DISP_ORD
+                   ORDER BY FILTER_CD
                    )  AS DISP_ORD
                    )  AS DISP_ORD
 FROM   (
 FROM   (
         SELECT SITE_CD
         SELECT SITE_CD
@@ -452,7 +453,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE1         AS FILTER_CD
              , PRICE1         AS FILTER_CD
              , PRICE1         AS FILTER_NM
              , PRICE1         AS FILTER_NM
-             , 1              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
         UNION ALL
         UNION ALL
         SELECT SITE_CD
         SELECT SITE_CD
@@ -462,7 +462,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE2         AS FILTER_CD
              , PRICE2         AS FILTER_CD
              , PRICE2         AS FILTER_NM
              , PRICE2         AS FILTER_NM
-             , 2              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
         UNION ALL
         UNION ALL
         SELECT SITE_CD
         SELECT SITE_CD
@@ -472,7 +471,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE3         AS FILTER_CD
              , PRICE3         AS FILTER_CD
              , PRICE3         AS FILTER_NM
              , PRICE3         AS FILTER_NM
-             , 3              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
         UNION ALL
         UNION ALL
         SELECT SITE_CD
         SELECT SITE_CD
@@ -482,7 +480,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE4         AS FILTER_CD
              , PRICE4         AS FILTER_CD
              , PRICE4         AS FILTER_NM
              , PRICE4         AS FILTER_NM
-             , 4              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
         UNION ALL
         UNION ALL
         SELECT SITE_CD
         SELECT SITE_CD
@@ -492,7 +489,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE5         AS FILTER_CD
              , PRICE5         AS FILTER_CD
              , PRICE5         AS FILTER_NM
              , PRICE5         AS FILTER_NM
-             , 5              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
         UNION ALL
         UNION ALL
         SELECT SITE_CD
         SELECT SITE_CD
@@ -502,7 +498,6 @@ FROM   (
              , CATE_NO
              , CATE_NO
              , PRICE6         AS FILTER_CD
              , PRICE6         AS FILTER_CD
              , PRICE6         AS FILTER_NM
              , PRICE6         AS FILTER_NM
-             , 6              AS DISP_ORD
         FROM   TAB_PRICE
         FROM   TAB_PRICE
        ) Z
        ) Z
 ;
 ;
@@ -522,7 +517,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -642,7 +637,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -761,7 +756,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO
@@ -886,7 +881,7 @@ INSERT INTO TB_CATE_FILTER_TMP (
 WITH TAB_FILTER AS (
 WITH TAB_FILTER AS (
     SELECT C4.SITE_CD
     SELECT C4.SITE_CD
          , C4.CATE_GB
          , C4.CATE_GB
-         , C4.FORMAL_GB
+         , G.FORMAL_GB
          , CG.BRAND_GROUP_NO
          , CG.BRAND_GROUP_NO
          , C4.CATE1_NO
          , C4.CATE1_NO
          , C4.CATE2_NO
          , C4.CATE2_NO

+ 877 - 0
산출물/4.구축/데이터처리/10.카테고리필터생성_브랜드별(TB_CATE_FILTER).sql

@@ -0,0 +1,877 @@
+TRUNCATE TABLE TB_CATE_FILTER_TMP;
+
+-- 사이즈 필터 생성
+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
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                     , FILTER_NM
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                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
+                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
+                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
+                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
+               ) 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
+         , 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
+                 , FORMAL_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
+            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 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
+                 , FORMAL_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
+            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE2_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 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
+                 , FORMAL_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
+            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE3_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 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
+                 , FORMAL_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
+            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE4_NO
+           ) Z
+    UNION ALL
+    SELECT SITE_CD
+         , CATE_GB
+         , 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
+                 , FORMAL_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
+            GROUP  BY SITE_CD, CATE_GB, FORMAL_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
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                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
+                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
+                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
+                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
+               ) 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
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                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
+                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
+                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
+                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
+               ) 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
+                     , FORMAL_GB
+                     , BRAND_GROUP_NO
+                     , CATE5_NO       AS CATE_NO
+                     , FILTER_CD
+                FROM   TAB_FILTER
+                WHERE  CATE5_NO IS NOT NULL
+                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
+                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
+                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
+                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
+               ) 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
+             , FORMAL_GB
+             , BRAND_GROUP_NO
+             , CATE5_NO       AS CATE_NO
+             , BENEFIT_GB     AS FILTER_CD
+        FROM   TAB_FILTER
+        WHERE  CATE5_NO IS NOT NULL
+        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
+        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
+        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
+        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
+       ) 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
+;