|
|
@@ -376,7 +376,7 @@
|
|
|
AND B.GOODS_CD = C.GOODS_CD
|
|
|
<![CDATA[
|
|
|
AND A.DAY >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
- AND A.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ AND A.DAY < DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
]]>
|
|
|
<if test="multiFrontGb != null">
|
|
|
/* 디바이스 */
|
|
|
@@ -421,45 +421,6 @@
|
|
|
<!-- 제휴몰 주문 목록 조회 -->
|
|
|
<select id="getExtmallOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
/* TsaStatistics.getExtmallOrderList */
|
|
|
- WITH YOY AS (
|
|
|
- SELECT X.EXTMALL_ID
|
|
|
- , SUM(X.EXTMALL_AMT - X.CNCL_AMT - X.RTN_AMT) AS YOY_TOT_ORD_AMT
|
|
|
- FROM TB_STAT_ORD_DAY X
|
|
|
- WHERE 1 = 1
|
|
|
- <![CDATA[
|
|
|
- AND X.DAY >= DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
- AND X.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
- ]]>
|
|
|
- <if test="multiBrandCd != null">
|
|
|
- /* 브랜드 */
|
|
|
- <foreach collection="multiBrandCd" item="item" index="index" open="AND X.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiFormalGb != null">
|
|
|
- /* 정상/이월구분 */
|
|
|
- <foreach collection="multiFormalGb" item="item" index="index" open="AND X.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiSupplyCompCd != null">
|
|
|
- /* 공급처 */
|
|
|
- <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND X.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiAfLinkCd != null">
|
|
|
- /* 채널 */
|
|
|
- <foreach collection="multiAfLinkCd" item="item" index="index" open="AND X.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiItemkindCd != null">
|
|
|
- /* 품목 */
|
|
|
- <foreach collection="multiItemkindCd" item="item" index="index" open="AND X.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiFrontGb != null">
|
|
|
- /* 디바이스 */
|
|
|
- <foreach collection="multiFrontGb" item="item" index="index" open="AND X.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiDistributionGb != null">
|
|
|
- /* 물류구분 */
|
|
|
- <foreach collection="multiDistributionGb" item="item" index="index" open="AND X.DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- GROUP BY X.EXTMALL_ID
|
|
|
- )
|
|
|
SELECT EXTMALL_NM
|
|
|
, TOT_AMT
|
|
|
, SELL_QTY
|
|
|
@@ -470,7 +431,7 @@
|
|
|
, SELL_FEE_RATE
|
|
|
, EX_USAC_AMT
|
|
|
, YOY_TOT_ORD_AMT
|
|
|
- , ROUND(TOT_AMT / YOY_TOT_ORD_AMT * 100 - 100,1) AS YOY_RATE
|
|
|
+ , ROUND(TOT_AMT / (CASE WHEN TOT_AMT > 0 AND YOY_TOT_ORD_AMT = 0 THEN 1 ELSE YOY_TOT_ORD_AMT END) * 100 - 100,1) AS YOY_RATE /*증가율*/
|
|
|
FROM (
|
|
|
SELECT
|
|
|
(SELECT EXTMALL_NM FROM TB_EXTMALL X WHERE X.EXTMALL_ID = A.EXTMALL_ID LIMIT 1) AS EXTMALL_NM
|
|
|
@@ -488,7 +449,7 @@
|
|
|
AND X.EXTMALL_ID = A.EXTMALL_ID
|
|
|
<![CDATA[
|
|
|
AND X.DAY >= DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
- AND X.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
+ AND X.DAY < DATE_ADD(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR)
|
|
|
]]>
|
|
|
<if test="multiBrandCd != null">
|
|
|
/* 브랜드 */
|
|
|
@@ -520,12 +481,11 @@
|
|
|
</if>
|
|
|
),0) AS YOY_TOT_ORD_AMT /*전년동기대비매출액*/
|
|
|
FROM TB_STAT_ORD_DAY A
|
|
|
- LEFT OUTER JOIN YOY AS B ON A.EXTMALL_ID = B.EXTMALL_ID
|
|
|
WHERE 1=1
|
|
|
AND A.EXTMALL_ID IS NOT NULL
|
|
|
<![CDATA[
|
|
|
AND A.DAY >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
- AND A.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ AND A.DAY < DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
]]>
|
|
|
<if test="multiBrandCd != null">
|
|
|
/* 브랜드 */
|
|
|
@@ -563,37 +523,6 @@
|
|
|
<!-- 채널 주문목록 조회 -->
|
|
|
<select id="getChannelOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
/* TsaStatistics.getChannelOrderList */
|
|
|
- WITH YOY AS (
|
|
|
- SELECT X.AF_LINK_CD
|
|
|
- , SUM(X.CHANNEL_AMT - X.CNCL_AMT - X.RTN_AMT) AS YOY_TOT_ORD_AMT
|
|
|
- FROM TB_STAT_ORD_DAY X
|
|
|
- WHERE 1=1
|
|
|
- <![CDATA[
|
|
|
- AND X.DAY >= DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
- AND X.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
- ]]>
|
|
|
- <if test="multiFrontGb != null">
|
|
|
- /* 디바이스 */
|
|
|
- <foreach collection="multiFrontGb" item="item" index="index" open="AND X.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiFormalGb != null">
|
|
|
- /* 정상/이월구분 */
|
|
|
- <foreach collection="multiFormalGb" item="item" index="index" open="AND X.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiDistributionGb != null">
|
|
|
- /* 물류구분 */
|
|
|
- <foreach collection="multiDistributionGb" item="item" index="index" open="AND X.DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiSupplyCompCd != null">
|
|
|
- /* 공급처 */
|
|
|
- <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND X.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiItemkindCd != null">
|
|
|
- /* 품목 */
|
|
|
- <foreach collection="multiItemkindCd" item="item" index="index" open="AND X.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- GROUP BY X.AF_LINK_CD
|
|
|
- )
|
|
|
SELECT AF_LINK_CD
|
|
|
, AF_LINK_NM
|
|
|
, CHANNEL_AMT
|
|
|
@@ -605,7 +534,7 @@
|
|
|
, SELL_FEE_RATE
|
|
|
, EX_USAC_AMT
|
|
|
, YOY_TOT_ORD_AMT
|
|
|
- , ROUND(TOT_AMT / YOY_TOT_ORD_AMT * 100 - 100,1) AS YOY_RATE
|
|
|
+ , ROUND(TOT_AMT / (CASE WHEN TOT_AMT >0 AND YOY_TOT_ORD_AMT = 0 THEN 1 ELSE YOY_TOT_ORD_AMT END) * 100 - 100,1) AS YOY_RATE /*증가율*/
|
|
|
FROM (
|
|
|
SELECT
|
|
|
A.AF_LINK_CD
|
|
|
@@ -618,14 +547,39 @@
|
|
|
, SUM(A.REAL_ORD_AMT) AS REAL_ORD_AMT /* 실결제금액 */
|
|
|
, (SELECT FEE_RATE FROM TB_AF_LINK X WHERE X.AF_LINK_CD = A.AF_LINK_CD) AS SELL_FEE_RATE
|
|
|
, (SUM(A.REAL_ORD_AMT) * (1 - (SELECT FEE_RATE FROM TB_AF_LINK X WHERE X.AF_LINK_CD = A.AF_LINK_CD) / 100)) AS EX_USAC_AMT
|
|
|
- , SUM(IFNULL(C.YOY_TOT_ORD_AMT,0)) AS YOY_TOT_ORD_AMT
|
|
|
+ , IFNULL((SELECT SUM(X.CHANNEL_AMT - X.CNCL_AMT - X.RTN_AMT) AS YOY_TOT_ORD_AMT
|
|
|
+ FROM TB_STAT_ORD_DAY X
|
|
|
+ WHERE X.AF_LINK_CD = A.AF_LINK_CD
|
|
|
+ <![CDATA[
|
|
|
+ AND X.DAY >= DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
+ AND X.DAY < DATE_ADD(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR)
|
|
|
+ ]]>
|
|
|
+ <if test="multiFrontGb != null">
|
|
|
+ /* 디바이스 */
|
|
|
+ <foreach collection="multiFrontGb" item="item" index="index" open="AND X.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiFormalGb != null">
|
|
|
+ /* 정상/이월구분 */
|
|
|
+ <foreach collection="multiFormalGb" item="item" index="index" open="AND X.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiDistributionGb != null">
|
|
|
+ /* 물류구분 */
|
|
|
+ <foreach collection="multiDistributionGb" item="item" index="index" open="AND X.DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiSupplyCompCd != null">
|
|
|
+ /* 공급처 */
|
|
|
+ <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND X.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiItemkindCd != null">
|
|
|
+ /* 품목 */
|
|
|
+ <foreach collection="multiItemkindCd" item="item" index="index" open="AND X.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>), 0) AS YOY_TOT_ORD_AMT
|
|
|
FROM TB_STAT_ORD_DAY A
|
|
|
INNER JOIN TB_AF_LINK B ON A.AF_LINK_CD = B.AF_LINK_CD
|
|
|
- LEFT OUTER JOIN YOY C ON A.AF_LINK_CD = C.AF_LINK_CD
|
|
|
WHERE B.AF_CHANNEL != 'G053_01'
|
|
|
<![CDATA[
|
|
|
AND A.DAY >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
- AND A.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ AND A.DAY < DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
]]>
|
|
|
<if test="multiFrontGb != null">
|
|
|
/* 디바이스 */
|
|
|
@@ -660,8 +614,8 @@
|
|
|
FROM TB_STAT_ORD_DAY X
|
|
|
WHERE 1=1
|
|
|
<![CDATA[
|
|
|
- AND X.DAY >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
- AND X.DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ AND X.DAY >= DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
|
|
|
+ AND X.DAY < DATE_ADD(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR)
|
|
|
]]>
|
|
|
<if test="multiFrontGb != null">
|
|
|
/* 디바이스 */
|
|
|
@@ -708,7 +662,7 @@
|
|
|
, TOT_AMT_10 /*정상매출*/
|
|
|
, TOT_AMT_20 /*이월매출*/
|
|
|
, ROUND( ((FLOOR(TOT_AMT_10 / TOT_AMT * 10000 / 10)) / 10), 1) AS AMT_RATE_10 /*정상비*/
|
|
|
- , ROUND(TOT_AMT / YOY_TOT_ORD_AMT * 100 - 100,1) AS YOY_RATE /*증가율*/
|
|
|
+ , ROUND(TOT_AMT / (CASE WHEN TOT_AMT >0 AND (YOY_TOT_ORD_AMT IS NULL OR YOY_TOT_ORD_AMT = 0) THEN 1 ELSE YOY_TOT_ORD_AMT END) * 100 - 100,1) AS YOY_RATE /*증가율*/
|
|
|
, YOY_TOT_ORD_AMT
|
|
|
FROM (
|
|
|
SELECT
|
|
|
@@ -735,12 +689,11 @@
|
|
|
, SUM(A.EXTMALL_AMT) AS EXTMALL_AMT -- 제휴몰매출
|
|
|
, SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT -- 취/반품액
|
|
|
, C.YOY_TOT_ORD_AMT
|
|
|
- FROM TB_STAT_ORD_DAY A, TB_BRAND B, YOY C
|
|
|
+ FROM TB_STAT_ORD_DAY A LEFT OUTER JOIN YOY C ON A.BRAND_CD = C.BRAND_CD, TB_BRAND B
|
|
|
WHERE A.BRAND_CD = B.BRAND_CD
|
|
|
- AND A.BRAND_CD = C.BRAND_CD
|
|
|
<![CDATA[
|
|
|
AND DAY >= STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
- AND DAY <= DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ AND DAY < DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
]]>
|
|
|
<if test="multiFrontGb != null">
|
|
|
/* 디바이스 */
|
|
|
@@ -801,7 +754,7 @@
|
|
|
<if test="item == 'COMPARE_TERMS'">
|
|
|
<![CDATA[
|
|
|
/* 직전동기간 */
|
|
|
- AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt},'%Y-%m-%d'), INTERVAL (DATE_FORMAT(#{startDt}, '%Y%m%d') - DATE_FORMAT(#{endDt}, '%Y%m%d')) DAY)
|
|
|
+ AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt},'%Y-%m-%d'), INTERVAL (DATE_FORMAT(#{startDt}, '%Y%m%d') - DATE_FORMAT(#{endDt}, '%Y%m%d')) - 1 DAY)
|
|
|
AND A.DAY_TIME < DATE_FORMAT(#{startDt}, '%Y%m%d')
|
|
|
]]>
|
|
|
</if>
|
|
|
@@ -1147,4 +1100,786 @@
|
|
|
<include refid="getBestOrderListSql"></include>
|
|
|
</select>
|
|
|
|
|
|
+ <!-- 쿠폰사용통계조회 -->
|
|
|
+ <select id="getCouponOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getCouponOrderList */
|
|
|
+ WITH TAB AS (
|
|
|
+ SELECT
|
|
|
+ A.ORD_NO
|
|
|
+ , B.ORD_DTL_NO
|
|
|
+ , B.ORD_QTY
|
|
|
+ , B.CNCL_RTN_QTY
|
|
|
+ , B.ORD_AMT
|
|
|
+ , B.CURR_PRICE
|
|
|
+ , B.CNCL_RTN_AMT
|
|
|
+ , B.ORD_DTL_STAT
|
|
|
+ , A.PAY_DT
|
|
|
+ , C.GOODS_CD
|
|
|
+ , CPN1_DC_AMT
|
|
|
+ , CPN1_CPN_SQ
|
|
|
+ , GOODS_CPN_DC_AMT
|
|
|
+ , GOODS_CPN_SQ
|
|
|
+ , CART_CPN_DC_AMT
|
|
|
+ , CART_CPN_SQ
|
|
|
+ FROM TB_ORDER A, TB_ORDER_DETAIL B, TB_GOODS C, TB_CUSTOMER D
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y%m%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ )
|
|
|
+ , TAB_CPN_STAT AS (
|
|
|
+ SELECT CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ , 100 - IFNULL((SELECT MAX(BURDEN_RATE) FROM TB_COUPON_BURDEN X WHERE X.CPN_ID = A.CPN_ID), 0) AS BURDEN
|
|
|
+ , COUNT(1) AS USE_CNT
|
|
|
+ , 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)) * (C.ORD_QTY - C.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(C.CPN1_DC_AMT) AS CPN_AMT
|
|
|
+ FROM TB_COUPON A, TB_CUST_COUPON B, TAB C
|
|
|
+ WHERE A.CPN_ID = B.CPN_ID
|
|
|
+ AND B.CUST_CPN_SQ = C.CPN1_CPN_SQ
|
|
|
+ AND A.CPN_TYPE = 'G230_10'-- 즉시할인쿠폰
|
|
|
+ AND C.CPN1_DC_AMT > 0
|
|
|
+ -- 쿠폰번호조건 (CPN_ID)
|
|
|
+ GROUP BY CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ UNION ALL
|
|
|
+ SELECT CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ , 100 - IFNULL((SELECT MAX(BURDEN_RATE) FROM TB_COUPON_BURDEN X WHERE X.CPN_ID = A.CPN_ID), 0) AS BURDEN
|
|
|
+ , COUNT(1) AS USE_CNT
|
|
|
+ , 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)) * (C.ORD_QTY - C.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(C.GOODS_CPN_DC_AMT) AS CPN_AMT
|
|
|
+ FROM TB_COUPON A, TB_CUST_COUPON B, TAB C
|
|
|
+ WHERE A.CPN_ID = B.CPN_ID
|
|
|
+ AND B.CUST_CPN_SQ = C.GOODS_CPN_SQ
|
|
|
+ AND A.CPN_TYPE = 'G230_11'-- 상품쿠푼
|
|
|
+ AND C.GOODS_CPN_DC_AMT > 0
|
|
|
+ -- 쿠폰번호조건 (CPN_ID)
|
|
|
+ GROUP BY CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ UNION ALL
|
|
|
+ SELECT CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ , 100 - IFNULL((SELECT MAX(BURDEN_RATE) FROM TB_COUPON_BURDEN X WHERE X.CPN_ID = A.CPN_ID), 0) AS BURDEN
|
|
|
+ , COUNT(1) AS USE_CNT
|
|
|
+ , 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)) * (C.ORD_QTY - C.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(C.CART_CPN_DC_AMT) AS CPN_AMT
|
|
|
+ FROM TB_COUPON A, TB_CUST_COUPON B, TAB C
|
|
|
+ WHERE A.CPN_ID = B.CPN_ID
|
|
|
+ AND B.CUST_CPN_SQ = C.CART_CPN_SQ
|
|
|
+ AND A.CPN_TYPE = 'G230_20'-- 장바구니쿠푼
|
|
|
+ AND C.CART_CPN_DC_AMT > 0
|
|
|
+ -- 쿠폰번호조건 (CPN_ID)
|
|
|
+ GROUP BY CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ UNION ALL
|
|
|
+ SELECT CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ , 100 - IFNULL((SELECT MAX(BURDEN_RATE) FROM TB_COUPON_BURDEN X WHERE X.CPN_ID = A.CPN_ID), 0) AS BURDEN
|
|
|
+ , COUNT(1) AS USE_CNT
|
|
|
+ , 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)) * (C.ORD_QTY - C.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(D.DELV_CPN_DC_AMT) AS CPN_AMT
|
|
|
+ FROM TB_COUPON A, TB_CUST_COUPON B, TAB C, TB_DELIVERY_FEE D
|
|
|
+ WHERE A.CPN_ID = B.CPN_ID
|
|
|
+ AND B.CUST_CPN_SQ = C.CART_CPN_SQ
|
|
|
+ AND C.ORD_NO = D.ORD_NO
|
|
|
+ AND B.CUST_CPN_SQ = D.DELV_CPN_SQ
|
|
|
+ AND A.CPN_TYPE = 'G230_30'-- 배송비쿠푼
|
|
|
+ AND D.DELV_CPN_DC_AMT > 0
|
|
|
+ -- 쿠폰번호조건 (CPN_ID)
|
|
|
+ GROUP BY CPN_TYPE, A.CPN_ID, A.CPN_NM
|
|
|
+ )
|
|
|
+ SELECT CPN_TYPE -- 쿠폰타입
|
|
|
+ , FN_GET_CODE_NM('G230', CPN_TYPE) AS CPN_TYPE_NM -- 쿠폰타입명
|
|
|
+ , CPN_ID -- 쿠폰번호
|
|
|
+ , CPN_NM -- 쿠폰명
|
|
|
+ , BURDEN -- 자사분담율
|
|
|
+ , DOWN_CNT
|
|
|
+ , FLOOR(USE_CNT / DOWN_CNT * 100 * 10) / 10 AS USE_RATE -- 사용율
|
|
|
+ , USE_CNT -- 사용수
|
|
|
+ , ORD_AMT -- 주문금액
|
|
|
+ , CPN_AMT -- 쿠폰비용
|
|
|
+ FROM (
|
|
|
+ SELECT CPN_TYPE -- 쿠폰타입
|
|
|
+ , FN_GET_CODE_NM('G230', CPN_TYPE) AS CPN_TYPE_NM -- 쿠폰타입명
|
|
|
+ , CPN_ID -- 쿠폰번호
|
|
|
+ , CPN_NM -- 쿠폰명
|
|
|
+ , BURDEN -- 자사분담율
|
|
|
+ , (SELECT COUNT(1) FROM TB_CUST_COUPON X WHERE X.CPN_ID = A.CPN_ID) AS DOWN_CNT
|
|
|
+ , USE_CNT -- 사용수
|
|
|
+ , ORD_AMT -- 주문금액
|
|
|
+ , CPN_AMT -- 쿠폰비용
|
|
|
+ FROM TAB_CPN_STAT A
|
|
|
+ WHERE 1=1
|
|
|
+ <if test="multiCpnId != null">
|
|
|
+ /* 쿠폰번호 */
|
|
|
+ <foreach collection="multiCpnId" item="item" index="index" open="AND A.CPN_ID IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="cpnTypeArr != null">
|
|
|
+ /* 쿠폰유형조건 (G230_10 즉시할인쿠폰, G230_11 상품쿠폰, G230_20 주문서쿠폰, G230_30 배송비쿠폰 */
|
|
|
+ <foreach collection="cpnTypeArr" item="item" index="index" open="AND A.CPN_TYPE IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ ) A
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 쿠폰사용통계상세조회 -->
|
|
|
+ <select id="getCouponOrderDetailList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getCouponOrderDetailList */
|
|
|
+ SELECT Z.BRAND_CD
|
|
|
+ , Z.BRAND_ENM
|
|
|
+ , Z.GOODS_CD
|
|
|
+ , Z.GOODS_NM
|
|
|
+ , Z.ORD_AMT
|
|
|
+ , Z.ORD_QTY
|
|
|
+ , Z.CUST_CNT
|
|
|
+ , X.CUST_CPN_CNT
|
|
|
+ , FLOOR((X.CUST_CPN_CNT / Z.CUST_CNT * 100) / 10) * 10 AS ORD_RATE
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ A.BRAND_CD
|
|
|
+ , B.BRAND_ENM
|
|
|
+ , A.GOODS_CD
|
|
|
+ , A.GOODS_NM
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(ORD_QTY) AS ORD_QTY
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ C.BRAND_CD
|
|
|
+ , C.GOODS_CD
|
|
|
+ , C.GOODS_NM
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(B.ORD_QTY - B.CNCL_RTN_QTY) AS ORD_QTY
|
|
|
+ , COUNT(1) OVER(PARTITION BY C.BRAND_CD, C.GOODS_CD, A.CUST_NO) AS CUST_CNT
|
|
|
+ FROM TB_ORDER A, TB_ORDER_DETAIL B, TB_GOODS C, TB_CUSTOMER D
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ GROUP BY C.BRAND_CD, C.GOODS_CD, C.GOODS_NM, A.CUST_NO
|
|
|
+ ) A, TB_BRAND B
|
|
|
+ WHERE A.BRAND_CD = B.BRAND_CD
|
|
|
+ GROUP BY A.BRAND_CD, B.BRAND_ENM, A.GOODS_CD
|
|
|
+ ) Z
|
|
|
+ , (
|
|
|
+ SELECT
|
|
|
+ X.BRAND_CD
|
|
|
+ , X.BRAND_ENM
|
|
|
+ , X.GOODS_CD
|
|
|
+ , X.CUST_CPN_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ A.BRAND_CD
|
|
|
+ , B.BRAND_ENM
|
|
|
+ , A.GOODS_CD
|
|
|
+ , SUM(A.CUST_CPN_CNT) AS CUST_CPN_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ C.BRAND_CD
|
|
|
+ , C.GOODS_CD
|
|
|
+ , COUNT(1) OVER(PARTITION BY C.BRAND_CD, C.GOODS_CD, A.CUST_NO) AS CUST_CPN_CNT
|
|
|
+ FROM TB_ORDER A, TB_ORDER_DETAIL B, TB_GOODS C, TB_CUSTOMER D
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ AND EXISTS(
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_COUPON X, TB_CUST_COUPON Y
|
|
|
+ WHERE X.CPN_ID = Y.CPN_ID
|
|
|
+ AND Y.CUST_CPN_SQ = B.GOODS_CPN_SQ -- B.CPN1_CPN_SQ, B.CART_CPN_SQ (쿠폰종류에따라 설정)
|
|
|
+ AND X.CPN_ID = #{cpnId} -- 쿠폰번호변수
|
|
|
+ )
|
|
|
+ GROUP BY C.BRAND_CD, C.GOODS_CD, A.CUST_NO
|
|
|
+ ) A, TB_BRAND B
|
|
|
+ WHERE A.BRAND_CD = B.BRAND_CD
|
|
|
+ GROUP BY A.BRAND_CD, B.BRAND_ENM, A.GOODS_CD
|
|
|
+ ) X
|
|
|
+ ) X
|
|
|
+ WHERE Z.BRAND_CD = X.BRAND_CD
|
|
|
+ AND Z.GOODS_CD = X.GOODS_CD
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 다다익선 주문 통계 조회 -->
|
|
|
+ <select id="getTmtbOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getTmtbOrderList */
|
|
|
+ WITH TAB AS (
|
|
|
+ SELECT A.ORD_NO
|
|
|
+ , B.ORD_DTL_NO
|
|
|
+ , B.ORD_QTY
|
|
|
+ , B.CNCL_RTN_QTY
|
|
|
+ , B.ORD_AMT
|
|
|
+ , B.CURR_PRICE
|
|
|
+ , B.CNCL_RTN_AMT
|
|
|
+ , B.ORD_DTL_STAT
|
|
|
+ , A.PAY_DT
|
|
|
+ , C.GOODS_CD
|
|
|
+ , B.TMTB1_SQ
|
|
|
+ , B.TMTB1_DC_AMT
|
|
|
+ , B.TMTB2_SQ
|
|
|
+ , B.TMTB2_DC_AMT
|
|
|
+ FROM TB_ORDER A,
|
|
|
+ TB_ORDER_DETAIL B,
|
|
|
+ TB_GOODS C,
|
|
|
+ TB_CUSTOMER D
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ <if test="applyGbArr == null">
|
|
|
+ /* 프로모션유형값없을시 */
|
|
|
+ AND (B.TMTB1_DC_AMT + B.TMTB2_DC_AMT) > 0
|
|
|
+ </if>
|
|
|
+ <if test="applyGbArr != null">
|
|
|
+ /* 프로모션유형 */
|
|
|
+ <foreach collection="applyGbArr" item="item" index="index">
|
|
|
+ <if test='item == "G810_10"'>
|
|
|
+ AND TMTB1_DC_AMT > 0 -- 수량
|
|
|
+ </if>
|
|
|
+ <if test='item == "G810_11"'>
|
|
|
+ AND TMTB2_DC_AMT > 0 -- 금액
|
|
|
+ </if>
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ )
|
|
|
+ -- 수량할인
|
|
|
+ , TMTB1 AS (
|
|
|
+ SELECT
|
|
|
+ TMTB_SQ
|
|
|
+ , TMTB_NM
|
|
|
+ , FN_GET_CODE_NM('G810', APPLY_GB) AS APPLY_GB
|
|
|
+ , SUM(ORD_CNT) AS ORD_CNT
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(DC_AMT) AS DC_AMT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.TMTB_SQ
|
|
|
+ , A.TMTB_NM
|
|
|
+ , APPLY_GB
|
|
|
+ , COUNT(1) AS ORD_CNT
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(B.TMTB1_DC_AMT) AS DC_AMT
|
|
|
+ FROM TB_TMTB A, TAB B
|
|
|
+ WHERE A.TMTB_SQ = B.TMTB1_SQ
|
|
|
+ GROUP BY A.TMTB_SQ, A.TMTB_NM, A.APPLY_GB, B.ORD_NO
|
|
|
+ ) X
|
|
|
+ GROUP BY TMTB_SQ, TMTB_NM, APPLY_GB
|
|
|
+ )
|
|
|
+ -- 금액할인
|
|
|
+ , TMTB2 AS (
|
|
|
+ SELECT
|
|
|
+ TMTB_SQ
|
|
|
+ , TMTB_NM
|
|
|
+ , FN_GET_CODE_NM('G810', APPLY_GB) AS APPLY_GB
|
|
|
+ , SUM(ORD_CNT) AS ORD_CNT
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(DC_AMT) AS DC_AMT
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT A.TMTB_SQ
|
|
|
+ , A.TMTB_NM
|
|
|
+ , APPLY_GB
|
|
|
+ , COUNT(1) AS ORD_CNT
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(B.TMTB1_DC_AMT) AS DC_AMT
|
|
|
+ FROM TB_TMTB A, TAB B
|
|
|
+ WHERE A.TMTB_SQ = B.TMTB2_SQ
|
|
|
+ <if test="applyGbArr != null">
|
|
|
+ /* 프로모션유형 */
|
|
|
+ <foreach collection="applyGbArr" item="item" index="index" open="AND A.APPLY_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY A.TMTB_SQ, A.TMTB_NM, A.APPLY_GB, B.ORD_NO
|
|
|
+ ) X
|
|
|
+ GROUP BY TMTB_SQ, TMTB_NM, APPLY_GB
|
|
|
+ )
|
|
|
+ SELECT *
|
|
|
+ FROM TMTB1
|
|
|
+ WHERE 1=1
|
|
|
+ <if test="multiTmtbSq != null">
|
|
|
+ /* 프로모션번호 */
|
|
|
+ <foreach collection="multiTmtbSq" item="item" index="index" open="AND TMTB_SQ IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ UNION ALL
|
|
|
+ SELECT *
|
|
|
+ FROM TMTB2
|
|
|
+ WHERE 1=1
|
|
|
+ <if test="multiTmtbSq != null">
|
|
|
+ /* 프로모션번호 */
|
|
|
+ <foreach collection="multiTmtbSq" item="item" index="index" open="AND TMTB_SQ IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 다다익선 주문 통계 상세조회 -->
|
|
|
+ <select id="getTmtbOrderDetailList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getTmtbOrderDetailList */
|
|
|
+ SELECT
|
|
|
+ A.BRAND_CD
|
|
|
+ , B.BRAND_ENM
|
|
|
+ , A.GOODS_CD
|
|
|
+ , A.GOODS_NM
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(ORD_QTY) AS ORD_QTY
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ C.BRAND_CD
|
|
|
+ , C.GOODS_CD
|
|
|
+ , C.GOODS_NM
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(B.ORD_QTY - B.CNCL_RTN_QTY) AS ORD_QTY
|
|
|
+ , COUNT(1) OVER(PARTITION BY C.BRAND_CD, C.GOODS_CD, A.CUST_NO) AS CUST_CNT
|
|
|
+ FROM TB_ORDER A, TB_ORDER_DETAIL B, TB_GOODS C, TB_CUSTOMER D
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ <if test="applyGbArr != null">
|
|
|
+ /* 프로모션유형 */
|
|
|
+ <foreach collection="applyGbArr" item="item" index="index">
|
|
|
+ <if test='item == "G810_10"'>
|
|
|
+ AND B.TMTB1_SQ = #{tmtbSq} -- 수량
|
|
|
+ </if>
|
|
|
+ <if test='item == "G810_11"'>
|
|
|
+ AND B.TMTB2_SQ = #{tmtbSq} -- 금액
|
|
|
+ </if>
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY C.BRAND_CD, C.GOODS_CD, A.CUST_NO
|
|
|
+ ) A, TB_BRAND B
|
|
|
+ WHERE A.BRAND_CD = B.BRAND_CD
|
|
|
+ GROUP BY A.BRAND_CD, B.BRAND_ENM, A.GOODS_CD
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 사은품 주문조회 -->
|
|
|
+ <select id="getPlanOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getPlanOrderList */
|
|
|
+ SELECT
|
|
|
+ CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN '입점' ELSE '위탁' END AS DISTRIBUTION_GB
|
|
|
+ , BRAND_ENM
|
|
|
+ , PLAN_SQ
|
|
|
+ , (SELECT PLAN_NM FROM TB_PLAN P WHERE P.PLAN_SQ = X.PLAN_SQ) AS PLAN_NM
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(ORD_CNT) AS ORD_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT C.DISTRIBUTION_GB
|
|
|
+ , F.BRAND_ENM
|
|
|
+ , E.PLAN_SQ
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , COUNT(1) AS ORD_CNT
|
|
|
+ FROM TB_ORDER A,
|
|
|
+ TB_ORDER_DETAIL B,
|
|
|
+ TB_GOODS C,
|
|
|
+ TB_CUSTOMER D,
|
|
|
+ TB_PLAN_DETAIL E,
|
|
|
+ TB_BRAND F
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ AND B.PLAN_DTL_SQ = E.PLAN_DTL_SQ
|
|
|
+ AND F.BRAND_CD = C.BRAND_CD
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ <if test="multiDistributionGb != null">
|
|
|
+ /* 물류구분 */
|
|
|
+ <foreach collection="multiDistributionGb" item="item" index="index">
|
|
|
+ <if test="item == 'SCM'">
|
|
|
+ AND C.DISTRIBUTION_GB = 'G065_20' -- 입점
|
|
|
+ </if>
|
|
|
+ <if test="item == 'WMS'">
|
|
|
+ AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12') -- 위탁
|
|
|
+ </if>
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiTmtbSq != null">
|
|
|
+ /* 기획전번호 */
|
|
|
+ <foreach collection="multiPlanSq" item="item" index="index" open="AND E.PLAN_SQ IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY C.DISTRIBUTION_GB, F.BRAND_ENM, E.PLAN_SQ, A.ORD_NO
|
|
|
+ ) X
|
|
|
+ GROUP BY DISTRIBUTION_GB, BRAND_ENM, PLAN_SQ
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 사은품 주문상세 조회 -->
|
|
|
+ <select id="getPlanOrderDetailList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getPlanOrderDetailList */
|
|
|
+ WITH TAB AS (
|
|
|
+ SELECT SUM(CUST_CNT) AS TOT_CUST_CNT
|
|
|
+ FROM (
|
|
|
+ SELECT COUNT(1) AS CUST_CNT
|
|
|
+ FROM TB_ORDER A,
|
|
|
+ TB_ORDER_DETAIL B,
|
|
|
+ TB_GOODS C,
|
|
|
+ TB_CUSTOMER D,
|
|
|
+ TB_PLAN_DETAIL E,
|
|
|
+ TB_BRAND F
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ AND B.PLAN_DTL_SQ = E.PLAN_DTL_SQ
|
|
|
+ AND F.BRAND_CD = C.BRAND_CD
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ AND E.PLAN_SQ = #{planSq}
|
|
|
+ GROUP BY A.CUST_NO
|
|
|
+ ) Z
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN '입점' ELSE '위탁' END AS DISTRIBUTION_GB
|
|
|
+ , GOODS_CD
|
|
|
+ , GOODS_NM
|
|
|
+ , SUM(ORD_AMT) AS ORD_AMT
|
|
|
+ , SUM(ORD_QTY) AS ORD_QTY
|
|
|
+ , SUM(CUST_CNT) AS CUST_CNT
|
|
|
+ , FLOOR((SUM(CUST_CNT) / (SELECT TOT_CUST_CNT FROM TAB) * 100) / 10) * 10 AS ORD_RATE
|
|
|
+ FROM (
|
|
|
+ SELECT C.DISTRIBUTION_GB
|
|
|
+ , C.GOODS_CD
|
|
|
+ , C.GOODS_NM
|
|
|
+ , SUM((B.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = B.ORD_DTL_NO)) * (B.ORD_QTY - B.CNCL_RTN_QTY)) AS ORD_AMT
|
|
|
+ , SUM(B.ORD_QTY - B.CNCL_RTN_QTY) AS ORD_QTY
|
|
|
+ , COUNT(1) OVER(PARTITION BY C.DISTRIBUTION_GB, C.GOODS_CD, A.CUST_NO) AS CUST_CNT
|
|
|
+ FROM TB_ORDER A,
|
|
|
+ TB_ORDER_DETAIL B,
|
|
|
+ TB_GOODS C,
|
|
|
+ TB_CUSTOMER D,
|
|
|
+ TB_PLAN_DETAIL E,
|
|
|
+ TB_BRAND F
|
|
|
+ WHERE A.ORD_NO = B.ORD_NO
|
|
|
+ AND B.GOODS_CD = C.GOODS_CD
|
|
|
+ AND A.CUST_NO = D.CUST_NO
|
|
|
+ AND B.PLAN_DTL_SQ = E.PLAN_DTL_SQ
|
|
|
+ AND F.BRAND_CD = C.BRAND_CD
|
|
|
+ <![CDATA[
|
|
|
+ AND A.PAY_DT >= DATE_FORMAT(#{startDt}, '%Y-%m-%d') -- 시작일변수
|
|
|
+ AND A.PAY_DT <= DATE_FORMAT(CONCAT(#{endDt}, ' 23:59:59'), '%Y-%m-%d %H:%i:%s') -- 종료일변수
|
|
|
+ ]]>
|
|
|
+ AND B.ORD_DTL_STAT NOT IN ('G013_00', 'G013_10', 'G013_98') -- 주문접수,입금대기,입금전취소 제외
|
|
|
+ AND B.ORD_QTY > B.CNCL_RTN_QTY
|
|
|
+ <if test="multiDistributionGb != null">
|
|
|
+ /* 물류구분 */
|
|
|
+ <foreach collection="multiDistributionGb" item="item" index="index">
|
|
|
+ <if test="item == 'SCM'">
|
|
|
+ AND C.DISTRIBUTION_GB = 'G065_20' -- 입점
|
|
|
+ </if>
|
|
|
+ <if test="item == 'WMS'">
|
|
|
+ AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12') -- 위탁
|
|
|
+ </if>
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ AND E.PLAN_SQ = #{planSq}
|
|
|
+ GROUP BY C.DISTRIBUTION_GB, C.GOODS_CD, C.GOODS_NM, A.CUST_NO
|
|
|
+ ) X
|
|
|
+ GROUP BY DISTRIBUTION_GB, GOODS_CD, GOODS_NM
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 카드 목록 -->
|
|
|
+ <select id="getCardList" resultType="Card">
|
|
|
+ /* TsaStatistics.getCardList */
|
|
|
+ SELECT CD AS CARD_CD
|
|
|
+ , CD_NM AS CARD_NM
|
|
|
+ FROM TB_COMMON_CODE
|
|
|
+ WHERE CD_GB = 'G050'
|
|
|
+ ORDER BY CD_GB, DISP_ORD
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 결제수단별통계 목록 -->
|
|
|
+ <select id="getPaymentList" parameterType="Statistics" resultType="Statistics">
|
|
|
+ /* TsaStatistics.getPaymentList */
|
|
|
+ WITH TAB AS (
|
|
|
+ SELECT
|
|
|
+ DATE_FORMAT(DAY, '%Y-%m-%d') AS DAY
|
|
|
+ , PAY_MEANS -- 결제수단
|
|
|
+ , PAY_AMT -- 결제금액
|
|
|
+ , PG_GB -- PG구분
|
|
|
+ FROM TB_STAT_PAY A
|
|
|
+ WHERE 1=1
|
|
|
+ AND A.DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
|
|
|
+ AND A.DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
|
|
|
+ <if test='multiCardId != null and multiCardId != ""'>
|
|
|
+ AND COM_CARD_CD IN
|
|
|
+ <foreach collection="multiCardId" item="item" index="index" open="(" close=")" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <choose>
|
|
|
+ <when test='simpleGbC != null and simpleGbC != "" and simpleGbB != null and simpleGbB != ""'>
|
|
|
+ AND PG_GB IN('KAKAO','NAVER','PAYCO')
|
|
|
+ AND PAY_MEANS IN ('G014_30','G014_10')
|
|
|
+ </when>
|
|
|
+ <when test='simpleGbC != null and simpleGbC != ""'>
|
|
|
+ AND PG_GB IN('KAKAO','NAVER','PAYCO')
|
|
|
+ AND PAY_MEANS = 'G014_30'
|
|
|
+ </when>
|
|
|
+ <when test='simpleGbB != null and simpleGbB != ""'>
|
|
|
+ AND PG_GB IN('KAKAO','NAVER','PAYCO')
|
|
|
+ AND PAY_MEANS = 'G014_10'
|
|
|
+ </when>
|
|
|
+ </choose>
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ DAY
|
|
|
+ , SUM(CD_AMT) AS CD_AMT -- 카드
|
|
|
+ , SUM(AC_AMT) AS AC_AMT -- 실시간계좌이체
|
|
|
+ , SUM(VA_AMT) AS VA_AMT -- 무통장
|
|
|
+ , SUM(HP_AMT) AS HP_AMT -- 휴대폰
|
|
|
+ , SUM(CP_AMT) AS CP_AMT -- PG쿠폰
|
|
|
+ , SUM(NPAY_AMT) AS NPAY_AMT -- 네이버페이
|
|
|
+ , SUM(PAYCO_AMT) AS PAYCO_AMT -- 페이코
|
|
|
+ , SUM(KAKAO_AMT) AS KAKAO_AMT -- 카카오
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ DAY
|
|
|
+ , CASE WHEN PAY_MEANS = 'G014_30' THEN PAY_AMT ELSE 0 END AS CD_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'G014_10' THEN PAY_AMT ELSE 0 END AS AC_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'G014_20' THEN PAY_AMT ELSE 0 END AS VA_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'G014_60' THEN PAY_AMT ELSE 0 END AS HP_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'G014_50' THEN PAY_AMT ELSE 0 END AS CP_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'NAVER' THEN PAY_AMT ELSE 0 END AS NPAY_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'PAYCO' THEN PAY_AMT ELSE 0 END AS PAYCO_AMT
|
|
|
+ , CASE WHEN PAY_MEANS = 'KAKAO' THEN PAY_AMT ELSE 0 END AS KAKAO_AMT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PAY_MEANS = 'G014_30'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PAY_MEANS = 'G014_10'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PAY_MEANS = 'G014_20'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PAY_MEANS = 'G014_60'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PAY_MEANS = 'G014_50'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PG_GB AS PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PG_GB = 'NAVER'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PG_GB AS PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PG_GB = 'PAYCO'
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ GROUP BY CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주')
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m')
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ GROUP BY DATE_FORMAT(DAY,'%Y-%m-%d')
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ <choose>
|
|
|
+ <when test='dayGb == "W"'> <!-- 주별 -->
|
|
|
+ CONCAT(MONTH(DAY), '월 ', WEEK(DAY,5) - WEEK(DATE_SUB(DAY, INTERVAL DAYOFMONTH(DAY) - 1 DAY), 5) + 1, '주') AS DAY
|
|
|
+ </when>
|
|
|
+ <when test='dayGb == "M"'> <!-- 월별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m') AS DAY
|
|
|
+ </when>
|
|
|
+ <otherwise> <!-- 일별 -->
|
|
|
+ DATE_FORMAT(DAY,'%Y-%m-%d') AS DAY
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ , PG_GB AS PAY_MEANS
|
|
|
+ , SUM(PAY_AMT) AS PAY_AMT
|
|
|
+ FROM TAB
|
|
|
+ WHERE PG_GB = 'KAKAO'
|
|
|
+ GROUP BY DAY
|
|
|
+ ) Z
|
|
|
+ ) Z
|
|
|
+ GROUP BY DAY
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|