|
|
@@ -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>
|