|
@@ -1127,4 +1127,556 @@
|
|
|
AND CD_SIZE = #{CD_SIZE}
|
|
AND CD_SIZE = #{CD_SIZE}
|
|
|
</update>
|
|
</update>
|
|
|
|
|
|
|
|
|
|
+ <!-- 전체회원 -->
|
|
|
|
|
+ <insert id="createStatCustAll" parameterType="String" timeout="6000">
|
|
|
|
|
+ /* TsbStatistics.createStatCustAll */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST_ALL (DAY, SEX_GB, AGE, CUST_STAT, CUST_GRADE, CUST_CNT)
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(#{currDay},'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CUST_STAT
|
|
|
|
|
+ , CUST_GRADE
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_CUSTOMER
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND JOIN_DT >= DATE_FORMAT('20060101', '%Y%m%d')
|
|
|
|
|
+ AND JOIN_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE, CUST_STAT, CUST_GRADE
|
|
|
|
|
+ </insert>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 전체휴면회원 -->
|
|
|
|
|
+ <insert id="createStatCustDorm" parameterType="String" timeout="6000">
|
|
|
|
|
+ /* TsbStatistics.createStatCustDorm */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST_DORM (DAY, SEX_GB, AGE, CUST_CNT)
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DAY
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CNT) AS CNT
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(DORMANT_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_DORMANT_CUST
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND DORMANT_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND DORMANT_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(RM_DORMANT_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , COUNT(1) * -1 AS CNT
|
|
|
|
|
+ FROM TB_CUSTOMER
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND RM_DORMANT_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND RM_DORMANT_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(#{currDay}, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ ,SUM(DORM_CNT) AS CNT
|
|
|
|
|
+ FROM TB_STAT_CUST
|
|
|
|
|
+ WHERE DAY = DATE_ADD(DATE_FORMAT(#{currDay}, '%Y%m%d'), INTERVAL -1 DAY)
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ ) Z
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ </insert>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 휴면탈퇴회원 -->
|
|
|
|
|
+ <insert id="createStatCustExt" parameterType="String" timeout="6000">
|
|
|
|
|
+ /* TsbStatistics.createStatCustExt */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST_EXT (DAY, SEX_GB, AGE, GB, CUST_CNT)
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(DORMANT_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , 'A' AS GB
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_DORMANT_CUST
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND DORMANT_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND DORMANT_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(RM_DORMANT_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , 'B' AS GB
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_CUSTOMER
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND RM_DORMANT_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND RM_DORMANT_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(SECEDE_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , 'C' AS GB
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_SECEDE_CUST A
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND SECEDE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND SECEDE_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ </insert>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 가입회원 -->
|
|
|
|
|
+ <insert id="createStatCustJoin" parameterType="String" timeout="6000">
|
|
|
|
|
+ /* TsbStatistics.createStatCustJoin */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST_JOIN (DAY, SEX_GB, AGE, DIRECT_YN, CUST_CNT)
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(JOIN_DT,'%Y-%m-%d') AS DAY
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(BIRTH_YMD) = '' OR FN_DEC_AES(BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CASE WHEN (SELECT COUNT(1) FROM TB_AF_LINK X WHERE X.AF_LINK_CD = A.AF_LINK_CD AND X.AF_CHANNEL = 'G053_01') > 0 THEN 'Y' ELSE 'N' END AS DIRECT_YN
|
|
|
|
|
+ , COUNT(1) AS CNT
|
|
|
|
|
+ FROM TB_CUSTOMER A
|
|
|
|
|
+ WHERE CUST_NO > 0
|
|
|
|
|
+ AND JOIN_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
|
|
|
|
|
+ AND JOIN_DT <= DATE_FORMAT(CONCAT(#{currDay},'235959'), '%Y%m%d%h%i%s')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE, DIRECT_YN
|
|
|
|
|
+ </insert>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 회원통계 -->
|
|
|
|
|
+ <insert id="createStatCust" parameterType="String" timeout="6000">
|
|
|
|
|
+ /* TsbStatistics.createStatCust */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST (DAY, SEX_GB, AGE, ALL_CNT, REAL_CNT, DORM_CNT, VIP_CNT, GOLD_CNT, SILVER_CNT, BRONZE_CNT, WELCOME_CNT, JOIN_CNT, DR_JOIN_CNT, AF_JOIN_CNT, CHG_DORM_CNT, RM_DORM_CNT, SECEED_CNT)
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DAY
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '1' THEN CUST_CNT ELSE 0 END), 0) AS ALL_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '2' THEN CUST_CNT ELSE 0 END), 0) AS REAL_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '3' THEN CUST_CNT ELSE 0 END), 0) AS DORM_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '4' THEN CUST_CNT ELSE 0 END), 0) AS VIP_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '5' THEN CUST_CNT ELSE 0 END), 0) AS GOLD_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '6' THEN CUST_CNT ELSE 0 END), 0) AS SILVER_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '7' THEN CUST_CNT ELSE 0 END), 0) AS BRONZE_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '8' THEN CUST_CNT ELSE 0 END), 0) AS WELCOME_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '9' THEN CUST_CNT ELSE 0 END), 0) AS JOIN_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '10' THEN CUST_CNT ELSE 0 END), 0) AS DR_JOIN_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '11' THEN CUST_CNT ELSE 0 END), 0) AS AF_JOIN_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '12' THEN CUST_CNT ELSE 0 END), 0) AS CHG_DORM_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '13' THEN CUST_CNT ELSE 0 END), 0) AS RM_DORM_CNT
|
|
|
|
|
+ , IFNULL(SUM(CASE WHEN GB = '14' THEN CUST_CNT ELSE 0 END), 0) AS SECEED_CNT
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ -- 전체회원
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '1' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 실회원
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '2' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 휴면회원
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '3' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_DORM
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- VIP
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '4' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ AND CUST_GRADE = 'G110_10'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- GOLD
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '5' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ AND CUST_GRADE = 'G110_20'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- SILVER
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '6' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ AND CUST_GRADE = 'G110_30'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- BRONZE
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '7' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ AND CUST_GRADE = 'G110_40'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- WELCOME
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '8' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_ALL
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND CUST_STAT = 'G104_10'
|
|
|
|
|
+ AND CUST_GRADE = 'G110_50'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 가입수
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '9' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_JOIN
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 직방문가입수
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '10' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_JOIN
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND DIRECT_YN = 'Y'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 제휴가입수
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '11' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_JOIN
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND DIRECT_YN = 'N'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 휴면전환
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '12' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_EXT
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND GB = 'A'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 휴면해제
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '13' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_EXT
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND GB = 'B'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ -- 탈퇴
|
|
|
|
|
+ SELECT DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
|
|
+ , '14' AS GB
|
|
|
|
|
+ , SEX_GB
|
|
|
|
|
+ , AGE
|
|
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
|
|
+ FROM TB_STAT_CUST_EXT
|
|
|
|
|
+ WHERE DAY = DATE_FORMAT(#{currDay}, '%Y-%m-%d')
|
|
|
|
|
+ AND GB = 'C'
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ ) Z
|
|
|
|
|
+ GROUP BY DAY, SEX_GB, AGE
|
|
|
|
|
+ </insert>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 회원주문통계 -->
|
|
|
|
|
+ <insert id="createStatCustOrd" parameterType="String" timeout="600">
|
|
|
|
|
+ /* TsbStatistics.createStatCustOrd */
|
|
|
|
|
+ INSERT INTO TB_STAT_CUST_ORD (DAY, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE, SELL_QTY, ORD_AMT, CNCL_QTY, RTN_QTY, CNCL_AMT, RTN_AMT, ORD_CNT)
|
|
|
|
|
+ WITH TAB AS (
|
|
|
|
|
+ SELECT *
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT A.ORD_NO
|
|
|
|
|
+ , B.ORD_DTL_NO
|
|
|
|
|
+ , B.ORD_QTY
|
|
|
|
|
+ , B.CNCL_RTN_QTY
|
|
|
|
|
+ , B.ORD_AMT
|
|
|
|
|
+ , B.CNCL_RTN_AMT
|
|
|
|
|
+ , B.CPN1_DC_AMT
|
|
|
|
|
+ , A.PAY_DT
|
|
|
|
|
+ , A.FRONT_GB
|
|
|
|
|
+ , C.ITEMKIND_CD
|
|
|
|
|
+ , C.BRAND_CD
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(E.SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(E.BIRTH_YMD) = '' OR FN_DEC_AES(E.BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(E.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(E.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(E.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(E.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , E.CUST_NO
|
|
|
|
|
+ , E.CUST_GRADE
|
|
|
|
|
+ , RANK() OVER (PARTITION BY B.ORD_DTL_NO ORDER BY B.ORD_DTL_HST_SQ) AS RNK
|
|
|
|
|
+ FROM TB_ORDER A,
|
|
|
|
|
+ TB_ORDER_DETAIL_HST B,
|
|
|
|
|
+ TB_GOODS C,
|
|
|
|
|
+ TB_CUSTOMER E
|
|
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
|
|
+ AND A.CUST_NO = E.CUST_NO
|
|
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
|
|
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
|
|
|
|
|
+ AND A.MALL_GB = 'G011_10'
|
|
|
|
|
+ AND B.ORD_EXCH_GB = 'O'
|
|
|
|
|
+ AND B.ORD_DTL_STAT = 'G013_20' -- 결제완료
|
|
|
|
|
+ ) A
|
|
|
|
|
+ WHERE RNK = 1
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 판매수
|
|
|
|
|
+ , TAB_SELL_QTY AS (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(PAY_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM(ORD_QTY) AS VAL
|
|
|
|
|
+ , '1' AS GBN
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ FROM TAB
|
|
|
|
|
+ GROUP BY TERM, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 매출
|
|
|
|
|
+ , TAB_ORD AS (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(PAY_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM(ORD_AMT + CPN1_DC_AMT + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = A.ORD_DTL_NO)) AS VAL
|
|
|
|
|
+ , '2' AS GBN
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ FROM TAB A
|
|
|
|
|
+ GROUP BY TERM, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 취소갯수
|
|
|
|
|
+ , TAB_CNCL_QTY AS (
|
|
|
|
|
+ SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM(CHG_QTY) AS VAL
|
|
|
|
|
+ , '3' AS GBN
|
|
|
|
|
+ , C.FRONT_GB, BRAND_CD, ITEMKIND_CD
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CUST_GRADE
|
|
|
|
|
+ FROM TB_ORDER_CHANGE_DETAIL A, TB_ORDER_DETAIL B, TB_ORDER C, TB_GOODS E, TB_CUSTOMER G
|
|
|
|
|
+ WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
|
|
|
|
|
+ AND B.ORD_NO = C.ORD_NO
|
|
|
|
|
+ AND B.GOODS_CD = E.GOODS_CD
|
|
|
|
|
+ AND C.CUST_NO = G.CUST_NO
|
|
|
|
|
+ AND CHG_STAT = 'G685_18' -- 결제후취소
|
|
|
|
|
+ AND COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
|
|
|
|
|
+ AND COMPLETE_DT <= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
|
|
|
|
|
+ AND MALL_GB = 'G011_10'
|
|
|
|
|
+ GROUP BY TERM, C.FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 반품갯수
|
|
|
|
|
+ , TAB_RTN_QTY AS (
|
|
|
|
|
+ SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM(CHG_QTY) AS VAL
|
|
|
|
|
+ , '4' AS GBN
|
|
|
|
|
+ , C.FRONT_GB, BRAND_CD, ITEMKIND_CD
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CUST_GRADE
|
|
|
|
|
+ FROM TB_ORDER_CHANGE_DETAIL A, TB_ORDER_DETAIL B, TB_ORDER C, TB_GOODS E, TB_CUSTOMER G
|
|
|
|
|
+ WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
|
|
|
|
|
+ AND B.ORD_NO = C.ORD_NO
|
|
|
|
|
+ AND B.GOODS_CD = E.GOODS_CD
|
|
|
|
|
+ AND C.CUST_NO = G.CUST_NO
|
|
|
|
|
+ AND CHG_STAT = 'G685_60' -- 반품완료
|
|
|
|
|
+ AND COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
|
|
|
|
|
+ AND COMPLETE_DT <= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
|
|
|
|
|
+ AND MALL_GB = 'G011_10'
|
|
|
|
|
+ GROUP BY TERM, C.FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 취소액
|
|
|
|
|
+ , TAB_CNCL_AMT AS (
|
|
|
|
|
+ SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
|
|
|
|
|
+ , '5' AS GBN
|
|
|
|
|
+ , D.FRONT_GB, BRAND_CD, ITEMKIND_CD
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CUST_GRADE
|
|
|
|
|
+ FROM TB_ORDER_CHANGE_DETAIL B, TB_ORDER_DETAIL C, TB_ORDER D, TB_GOODS E, TB_CUSTOMER G
|
|
|
|
|
+ WHERE B.ORD_DTL_NO = C.ORD_DTL_NO
|
|
|
|
|
+ AND C.ORD_NO = D.ORD_NO
|
|
|
|
|
+ AND C.GOODS_CD = E.GOODS_CD
|
|
|
|
|
+ AND D.CUST_NO = G.CUST_NO
|
|
|
|
|
+ AND CHG_STAT = 'G685_18' -- 결제후취소
|
|
|
|
|
+ AND B.COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
|
|
|
|
|
+ AND B.COMPLETE_DT <= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
|
|
|
|
|
+ AND MALL_GB = 'G011_10'
|
|
|
|
|
+ GROUP BY TERM, D.FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 반품액
|
|
|
|
|
+ , TAB_RTN_AMT AS (
|
|
|
|
|
+ SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
|
|
|
|
|
+ , '6' AS GBN
|
|
|
|
|
+ , D.FRONT_GB, BRAND_CD, ITEMKIND_CD
|
|
|
|
|
+ , IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
|
|
|
|
|
+ , CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 20 AND 29 THEN '20'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 30 AND 39 THEN '30'
|
|
|
|
|
+ WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 40 AND 49 THEN '40'
|
|
|
|
|
+ ELSE 'X' END AS AGE
|
|
|
|
|
+ , CUST_GRADE
|
|
|
|
|
+ FROM TB_ORDER_CHANGE_DETAIL B, TB_ORDER_DETAIL C, TB_ORDER D, TB_GOODS E, TB_CUSTOMER G
|
|
|
|
|
+ WHERE B.ORD_DTL_NO = C.ORD_DTL_NO
|
|
|
|
|
+ AND C.ORD_NO = D.ORD_NO
|
|
|
|
|
+ AND C.GOODS_CD = E.GOODS_CD
|
|
|
|
|
+ AND D.CUST_NO = G.CUST_NO
|
|
|
|
|
+ AND CHG_STAT = 'G685_60' -- 반품완료
|
|
|
|
|
+ AND B.COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
|
|
|
|
|
+ AND B.COMPLETE_DT <= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
|
|
|
|
|
+ AND MALL_GB = 'G011_10'
|
|
|
|
|
+ GROUP BY TERM, D.FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ -- 주문수
|
|
|
|
|
+ , TAB_ORD_CNT AS (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ TERM
|
|
|
|
|
+ , SUM(VAL) AS VAL
|
|
|
|
|
+ , '7' AS GBN
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ DATE_FORMAT(PAY_DT, '%Y-%m-%d') AS TERM
|
|
|
|
|
+ , 1 AS VAL
|
|
|
|
|
+ , ORD_NO
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ FROM TAB
|
|
|
|
|
+ GROUP BY TERM, ORD_NO, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ ) A
|
|
|
|
|
+ GROUP BY TERM, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ )
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ TERM
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ , SELL_QTY, ORD_AMT, CNCL_QTY, RTN_QTY, CNCL_AMT, RTN_AMT
|
|
|
|
|
+ , ORD_CNT
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ TERM
|
|
|
|
|
+ , FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '1' THEN VAL ELSE 0 END) AS SELL_QTY -- 판매수
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '2' THEN VAL ELSE 0 END) AS ORD_AMT -- 매출액(판매금액)
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '3' THEN VAL ELSE 0 END) AS CNCL_QTY -- 취소수량
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '4' THEN VAL ELSE 0 END) AS RTN_QTY -- 반품수량
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '5' THEN VAL ELSE 0 END) AS CNCL_AMT -- 취소금액
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '6' THEN VAL ELSE 0 END) AS RTN_AMT -- 반품금액
|
|
|
|
|
+ , SUM(CASE WHEN GBN = '7' THEN VAL ELSE 0 END) AS ORD_CNT -- 주문수
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT * FROM TAB_SELL_QTY
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_ORD
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_CNCL_QTY
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_RTN_QTY
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_CNCL_AMT
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_RTN_AMT
|
|
|
|
|
+ UNION ALL
|
|
|
|
|
+ SELECT * FROM TAB_ORD_CNT
|
|
|
|
|
+ ) A
|
|
|
|
|
+ GROUP BY TERM, FRONT_GB, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, CUST_GRADE
|
|
|
|
|
+ ) X
|
|
|
|
|
+ </insert>
|
|
|
</mapper>
|
|
</mapper>
|