|
|
@@ -585,6 +585,43 @@
|
|
|
<!--생일쿠폰 다운로드 안내 대상자-->
|
|
|
<select id="getBirthDayTargetList" parameterType="CustomerSearch" resultType="Coupon">
|
|
|
/*TsbCustomerDao.getBirthDayTargetList*/
|
|
|
+ WITH TAB_COUPON_REFVAL1 AS (
|
|
|
+ SELECT CR.CPN_ID
|
|
|
+ , CR.CPN_TARGET
|
|
|
+ , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
|
|
|
+ CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0
|
|
|
+ THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0
|
|
|
+ THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ END
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
|
|
|
+ END AS REF_VAL
|
|
|
+ , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
|
|
|
+ FROM TB_COUPON_REFVAL CR
|
|
|
+ WHERE CR.CPN_ID = '28'
|
|
|
+ AND CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL2 AS (
|
|
|
+ SELECT CPN_ID
|
|
|
+ , CPN_TARGET
|
|
|
+ , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
|
|
|
+ , (SELECT COUNT(*)
|
|
|
+ FROM TAB_COUPON_REFVAL1
|
|
|
+ WHERE CPN_ID = CR.CPN_ID
|
|
|
+ AND CPN_TARGET = CR.CPN_TARGET) AS CNT
|
|
|
+ FROM TAB_COUPON_REFVAL1 CR
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND (
|
|
|
+ (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
|
|
|
+ OR
|
|
|
+ (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
|
|
|
+ )
|
|
|
+ GROUP BY CPN_ID, CPN_TARGET
|
|
|
+ )
|
|
|
SELECT C.CUST_NO
|
|
|
, C.EMAIL
|
|
|
, C.CELL_PHNNO
|
|
|
@@ -616,7 +653,7 @@
|
|
|
FROM TB_CUST_COUPON CCP
|
|
|
WHERE CCP.CUST_NO = C.CUST_NO
|
|
|
AND CCP.CPN_ID = CO.CPN_ID
|
|
|
- ) AS CPN_CNT
|
|
|
+ ) AS CPN_CNT
|
|
|
FROM TB_CUSTOMER C
|
|
|
INNER JOIN
|
|
|
TB_BATCH_BIRTH BB
|
|
|
@@ -629,6 +666,9 @@
|
|
|
TB_COUPON CO
|
|
|
ON CGP.GRADE_CPN_ID3 = CO.CPN_ID
|
|
|
AND CO.CPN_STAT = 'G232_11'
|
|
|
+ INNER JOIN
|
|
|
+ TAB_COUPON_REFVAL2 CR
|
|
|
+ ON CO.CPN_ID = CR.CPN_ID
|
|
|
WHERE C.CUST_STAT = 'G104_10'
|
|
|
AND C.SITE_CD = #{siteCd}
|
|
|
AND (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y')
|