|
|
@@ -488,31 +488,42 @@
|
|
|
<!-- 상품 혜택가 목록 -->
|
|
|
<sql id="getGoodsBenefitList_sql">
|
|
|
WITH CTE AS (
|
|
|
- SELECT CPN_REFVAL_SQ
|
|
|
- FROM TB_COUPON CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_ID=CPR.CPN_ID
|
|
|
- WHERE CP.SITE_CD = 'G000_10'
|
|
|
- AND CP.CPN_STAT = 'G232_11' -- 쿠폰인 진행중인 쿠폰만
|
|
|
- AND NOW() BETWEEN CP.AVAIL_STDT AND CP.AVAIL_EDDT
|
|
|
- AND CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
|
|
|
- AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
- AND CP.APPLY_SCOPE = 'I'
|
|
|
- AND CPR.DEL_YN = 'N'
|
|
|
+ SELECT CPN_REFVAL_SQ
|
|
|
+ FROM TB_COUPON CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR
|
|
|
+ ON CP.CPN_ID = CPR.CPN_ID
|
|
|
+ WHERE 1=1
|
|
|
+ AND CP.SITE_CD = 'G000_10'
|
|
|
+ AND CP.CPN_STAT = 'G232_11' -- 쿠폰인 진행중인 쿠폰만
|
|
|
+ AND NOW() BETWEEN CP.AVAIL_STDT AND CP.AVAIL_EDDT
|
|
|
+ AND CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
|
|
|
+ AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
+ AND CP.APPLY_SCOPE = 'I'
|
|
|
+ AND CPR.DEL_YN = 'N'
|
|
|
)
|
|
|
, CTE_DETAIL AS (
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.GOODS_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.GOODS_CD
|
|
|
- WHERE CPR.CPN_TARGET = 'G260_10'
|
|
|
-
|
|
|
+ SELECT CP.CPN_REFVAL_SQ
|
|
|
+ , CPR.CPN_ID
|
|
|
+ , CPR.REF_VAL
|
|
|
+ , G.GOODS_CD GKEY
|
|
|
+ , G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G
|
|
|
+ ON CPR.REF_VAL = G.GOODS_CD
|
|
|
+ WHERE CPR.CPN_TARGET = 'G260_10' -- 적용상품
|
|
|
UNION
|
|
|
-
|
|
|
/* 적용대상:카테고리*/
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.GOODS_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN
|
|
|
+ SELECT CP.CPN_REFVAL_SQ
|
|
|
+ , CPR.CPN_ID
|
|
|
+ , CPR.REF_VAL
|
|
|
+ , G.GOODS_CD GKEY
|
|
|
+ , G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN
|
|
|
(SELECT LEAF_CATE_NO
|
|
|
, CATE_LVL
|
|
|
, CATE_NO
|
|
|
@@ -539,7 +550,7 @@
|
|
|
, CATE5_NO
|
|
|
FROM TB_CATE_4SRCH
|
|
|
WHERE SITE_CD = 'G000_10'
|
|
|
- AND CATE_TYPE = 'G031_10') A, -- 상품타입
|
|
|
+ AND CATE_TYPE = 'G031_10') A, -- 상품타입
|
|
|
(SELECT 1 AS X -- UNPIVOT 컬럼 수 만큼 선언
|
|
|
UNION ALL SELECT 2 AS X
|
|
|
UNION ALL SELECT 3 AS X
|
|
|
@@ -556,51 +567,53 @@
|
|
|
WHERE CPR.CPN_TARGET = 'G260_11'
|
|
|
AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
AND IFNULL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
|
|
|
-
|
|
|
- UNION
|
|
|
-
|
|
|
- /* 적용대상:브랜드*/
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.BRAND_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.BRAND_CD
|
|
|
- WHERE CPR.CPN_TARGET = 'G260_12'
|
|
|
- AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
-
|
|
|
UNION
|
|
|
-
|
|
|
- /* 적용대상:공급업체*/
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.SUPPLY_COMP_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.SUPPLY_COMP_CD
|
|
|
- WHERE CPR.CPN_TARGET = 'G260_13'
|
|
|
+ /* 적용대상:브랜드, 공급업체 */
|
|
|
+ SELECT CP.CPN_REFVAL_SQ
|
|
|
+ , CPR1.CPN_ID
|
|
|
+ , CPR1.REF_VAL
|
|
|
+ , G1.BRAND_CD GKEY
|
|
|
+ , G1.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR1
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR1.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G1
|
|
|
+ ON CPR1.REF_VAL = G1.BRAND_CD
|
|
|
+ AND CPR1.CPN_TARGET = 'G260_12'
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR2
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR2.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G2
|
|
|
+ ON CPR2.REF_VAL = G2.SUPPLY_COMP_CD
|
|
|
+ AND CPR2.CPN_TARGET = 'G260_13'
|
|
|
+ WHERE 1=1
|
|
|
+ AND IFNULL(CPR1.REF_FORMAL_GB, G1.FORMAL_GB) = G1.FORMAL_GB
|
|
|
+ AND CPR1.CPN_ID = CPR2.CPN_ID
|
|
|
)
|
|
|
SELECT GOODS_CD
|
|
|
- , 'G100_00' AS CUST_GB
|
|
|
- , CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , 'G100_00' AS CUST_GB
|
|
|
+ , CURR_PRICE
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(CURR_PRICE - DC_PVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((CURR_PRICE * DC_PVAL / 100) / 1) * 1)
|
|
|
END) ) AS PC_CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(CURR_PRICE - DC_MVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((CURR_PRICE * DC_MVAL / 100) / 1) * 1)
|
|
|
END) )AS MO_CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(CURR_PRICE - DC_AVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((CURR_PRICE * DC_AVAL / 100) / 1) * 1)
|
|
|
END) )AS MO_CURR_PRICE
|
|
|
- , STAFF_CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , STAFF_CURR_PRICE
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(STAFF_CURR_PRICE - DC_PVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / 1) * 1)
|
|
|
END) )AS STAFF_PC_CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(STAFF_CURR_PRICE - DC_MVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / 1) * 1)
|
|
|
END) )AS STAFF_MO_CURR_PRICE
|
|
|
- , MIN(
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN GREATEST(STAFF_CURR_PRICE - DC_AVAL ,0)
|
|
|
ELSE CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_AVAL / 100) / 1) * 1)
|
|
|
END) )AS STAFF_APP_CURR_PRICE
|
|
|
@@ -644,7 +657,10 @@
|
|
|
)
|
|
|
) CP
|
|
|
) Y
|
|
|
- GROUP BY GOODS_CD ,CURR_PRICE, STAFF_CURR_PRICE, CUST_GB
|
|
|
+ GROUP BY GOODS_CD
|
|
|
+ , CURR_PRICE
|
|
|
+ , STAFF_CURR_PRICE
|
|
|
+ , CUST_GB
|
|
|
</sql>
|
|
|
|
|
|
<!-- 상품 혜택가 목록 -->
|
|
|
@@ -2752,25 +2768,29 @@
|
|
|
WHERE CPR.CPN_TARGET = 'G260_11'
|
|
|
AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
AND IFNULL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
|
|
|
-
|
|
|
UNION
|
|
|
-
|
|
|
- /* 적용대상:브랜드*/
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.BRAND_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.BRAND_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
- WHERE CPR.CPN_TARGET = 'G260_12'
|
|
|
- AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
-
|
|
|
- UNION
|
|
|
-
|
|
|
- /* 적용대상:공급업체*/
|
|
|
- SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.SUPPLY_COMP_CD GKEY, G.GOODS_CD
|
|
|
- FROM CTE CP
|
|
|
- INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
- INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.SUPPLY_COMP_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
- WHERE CPR.CPN_TARGET = 'G260_13'
|
|
|
+ /* 적용대상:브랜드, 공급업체 */
|
|
|
+ SELECT CP.CPN_REFVAL_SQ
|
|
|
+ , CPR1.CPN_ID
|
|
|
+ , CPR1.REF_VAL
|
|
|
+ , G1.BRAND_CD GKEY
|
|
|
+ , G1.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR1
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR1.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G1
|
|
|
+ ON CPR1.REF_VAL = G1.BRAND_CD
|
|
|
+ AND CPR1.CPN_TARGET = 'G260_12'
|
|
|
+ AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G1.CURR_PRICE /*최소주문금액*/
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR2
|
|
|
+ ON CP.CPN_REFVAL_SQ = CPR2.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G2
|
|
|
+ ON CPR2.REF_VAL = G2.SUPPLY_COMP_CD
|
|
|
+ AND CPR2.CPN_TARGET = 'G260_13'
|
|
|
+ AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G2.CURR_PRICE /*최소주문금액*/
|
|
|
+ WHERE 1=1
|
|
|
+ AND IFNULL(CPR1.REF_FORMAL_GB, G1.FORMAL_GB) = G1.FORMAL_GB
|
|
|
+ AND CPR1.CPN_ID = CPR2.CPN_ID
|
|
|
)
|
|
|
SELECT G.GOODS_CD
|
|
|
, '10' AS BENEFIT_GB /*쿠폰할인*/
|