|
|
@@ -364,6 +364,7 @@
|
|
|
, SUM(C.STOCK_QTY) AS STOCK_QTY -- 현재고수량
|
|
|
, SUM(A.SELL_QTY) AS SELL_QTY -- 판매수량
|
|
|
, SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.GOODS_CPN_AMT - A.TMTB_AMT - A.CART_CPN_AMT) AS PAY_AMT -- 상품당결제액
|
|
|
+ , SUM(A.ORD_AMT) AS ORD_AMT -- 매출액
|
|
|
, SUM(A.GOODS_CPN_AMT) AS GOODS_CPN_AMT -- 즉시/주문상품쿠폰
|
|
|
, SUM(A.TMTB_AMT) AS TMTB_AMT -- 다다익선
|
|
|
, SUM(A.CART_CPN_AMT) AS CART_CPN_AMT -- 장바구니쿠폰
|
|
|
@@ -800,8 +801,8 @@
|
|
|
<if test="item == 'COMPARE_TERMS'">
|
|
|
<![CDATA[
|
|
|
/* 직전동기간 */
|
|
|
- AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{compStDt},'%Y-%m-%d'), INTERVAL (DATE_FORMAT(#{compStDt}, '%Y%m%d') - DATE_FORMAT(#{compEdDt}, '%Y%m%d')) -1 DAY)
|
|
|
- AND A.DAY_TIME < DATE_ADD(DATE_FORMAT(#{compEdDt}, '%Y%m%d'), INTERVAL (DATE_FORMAT(#{compStDt}, '%Y%m%d') - DATE_ADD(DATE_FORMAT(#{compEdDt}, '%Y%m%d'), INTERVAL 1 DAY)) * -1 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')) DAY)
|
|
|
+ AND A.DAY_TIME < DATE_FORMAT(#{startDt}, '%Y%m%d')
|
|
|
]]>
|
|
|
</if>
|
|
|
<if test="item == 'YOY'">
|
|
|
@@ -811,15 +812,15 @@
|
|
|
AND A.DAY_TIME < DATE_ADD(DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR )
|
|
|
]]>
|
|
|
</if>
|
|
|
+ <if test="item == 'DIY'">
|
|
|
+ <![CDATA[
|
|
|
+ /* 직접선택 */
|
|
|
+ AND A.DAY_TIME >= DATE_FORMAT(#{compStDt}, '%Y%m%d')
|
|
|
+ AND A.DAY_TIME < DATE_ADD(DATE_FORMAT(#{compEdDt}, '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
+ ]]>
|
|
|
+ </if>
|
|
|
</foreach>
|
|
|
</if>
|
|
|
- <if test="dtGb == null">
|
|
|
- <![CDATA[
|
|
|
- /* 직접선택 */
|
|
|
- AND A.DAY_TIME >= DATE_FORMAT(#{compStDt}, '%Y%m%d')
|
|
|
- AND A.DAY_TIME < DATE_ADD(DATE_FORMAT(#{compEdDt}, '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
- ]]>
|
|
|
- </if>
|
|
|
<if test="multiFrontGb != null">
|
|
|
/* 디바이스 */
|
|
|
<foreach collection="multiFrontGb" item="item" index="index" open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
@@ -859,7 +860,7 @@
|
|
|
A.HOUR
|
|
|
, A.ORD_AMT /*매출*/
|
|
|
, B.ORD_AMT AS COMP_ORD_AMT /*비교*/
|
|
|
- , ROUND(FLOOR(A.ORD_AMT / B.ORD_AMT * 100 * 100) / 100, 2) AS CPL_RATE /*달성율*/
|
|
|
+ , ROUND(FLOOR(A.ORD_AMT / (CASE WHEN B.ORD_AMT IS NULL OR B.ORD_AMT = 0 THEN 1 ELSE B.ORD_AMT END) * 100 * 100) / 100, 2) AS CPL_RATE /*달성율*/
|
|
|
, A.ORD_CUST /*주문자수*/
|
|
|
, A.ORD_CNT /*주문수*/
|
|
|
, A.SELL_QTY /*판매수*/
|
|
|
@@ -924,39 +925,83 @@
|
|
|
<!-- 카테고리별 주문 조회 -->
|
|
|
<select id="getCategoryOrderList" parameterType="Statistics" resultType="Statistics">
|
|
|
/* TsaStatistics.getCategoryOrderList */
|
|
|
- SELECT A.ITEMKIND_CD
|
|
|
- , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 1) AS CATE_NM1 /* 대분류 */
|
|
|
- , SUBSTRING_INDEX(SUBSTRING(T4.FULL_CATE_NM, INSTR(SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 2), ' > ') + 3), ' > ', 1) AS CATE_NM2 /* 중분류 */
|
|
|
- , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', -1) AS CATE_NM3 -- 소분류
|
|
|
- , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /*총매출*/
|
|
|
- , SUM(A.SELF_AMT + A.CHANNEL_AMT) AS SELFMALL_AMT /*자사몰매출*/
|
|
|
- , SUM(A.EXTMALL_AMT) AS EXTMALL_AMT /*제휴몰매출*/
|
|
|
- FROM TB_STAT_ORD_DAY A, TB_ITEMKIND_CATE TC, TB_CATE_4SRCH T4
|
|
|
+ SELECT
|
|
|
+ A.ITEMKIND_CD
|
|
|
+ , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 1) AS CATE_NM1 /* 대분류 */
|
|
|
+ , SUBSTRING_INDEX(SUBSTRING(T4.FULL_CATE_NM, INSTR(SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', 2), ' > ') + 3), ' > ', 1) AS CATE_NM2 /* 중분류 */
|
|
|
+ , SUBSTRING_INDEX(T4.FULL_CATE_NM, ' > ', -1) AS CATE_NM3 -- 소분류
|
|
|
+ , (A.SELFMALL_AMT + A.EXTMALL_AMT) AS TOT_AMT /*총매출*/
|
|
|
+ , SELFMALL_AMT /*자사몰매출*/
|
|
|
+ , EXTMALL_AMT /*제휴몰매출*/
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ A.ITEMKIND_CD
|
|
|
+ , SUM(CASE WHEN GB = '1' THEN AMT ELSE 0 END ) AS SELFMALL_AMT
|
|
|
+ , SUM(CASE WHEN GB = '2' THEN AMT ELSE 0 END ) AS EXTMALL_AMT
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ A.ITEMKIND_CD
|
|
|
+ , SUM(A.SELF_AMT + A.CHANNEL_AMT - A.CNCL_AMT - A.RTN_AMT) AS AMT
|
|
|
+ , '1' AS GB
|
|
|
+ FROM TB_STAT_ORD_DAY A
|
|
|
+ WHERE EXTMALL_ID IS NULL
|
|
|
+ <![CDATA[
|
|
|
+ /* 직접선택 */
|
|
|
+ AND A.DAY >= DATE_FORMAT(#{startDt}, '%Y%m%d')
|
|
|
+ AND A.DAY < DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
+ ]]>
|
|
|
+ <if test="multiFrontGb != null">
|
|
|
+ /* 디바이스 */
|
|
|
+ <foreach collection="multiFrontGb" item="item" index="index" open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiExtmallId != null">
|
|
|
+ /* 제휴몰 */
|
|
|
+ <foreach collection="multiExtmallId" item="item" index="index" open="AND A.EXTMALL_ID IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiSupplyCompCd != null">
|
|
|
+ /* 공급처 */
|
|
|
+ <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND A.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiBrandCd != null">
|
|
|
+ /* 브랜드 */
|
|
|
+ <foreach collection="multiBrandCd" item="item" index="index" open="AND A.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY A.ITEMKIND_CD
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ A.ITEMKIND_CD
|
|
|
+ , SUM(A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS AMT
|
|
|
+ , '2' AS GB
|
|
|
+ FROM TB_STAT_ORD_DAY A
|
|
|
+ WHERE EXTMALL_ID IS NOT NULL
|
|
|
+ <![CDATA[
|
|
|
+ /* 직접선택 */
|
|
|
+ AND A.DAY >= DATE_FORMAT(#{startDt}, '%Y%m%d')
|
|
|
+ AND A.DAY < DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
+ ]]>
|
|
|
+ <if test="multiFrontGb != null">
|
|
|
+ /* 디바이스 */
|
|
|
+ <foreach collection="multiFrontGb" item="item" index="index" open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiExtmallId != null">
|
|
|
+ /* 제휴몰 */
|
|
|
+ <foreach collection="multiExtmallId" item="item" index="index" open="AND A.EXTMALL_ID IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiSupplyCompCd != null">
|
|
|
+ /* 공급처 */
|
|
|
+ <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND A.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ <if test="multiBrandCd != null">
|
|
|
+ /* 브랜드 */
|
|
|
+ <foreach collection="multiBrandCd" item="item" index="index" open="AND A.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY A.ITEMKIND_CD
|
|
|
+ ) A
|
|
|
+ GROUP BY A.ITEMKIND_CD
|
|
|
+ ) A, TB_ITEMKIND_CATE TC, TB_CATE_4SRCH T4
|
|
|
WHERE A.ITEMKIND_CD = TC.ITEMKIND_CD
|
|
|
- AND TC.CATE_NO = T4.LEAF_CATE_NO
|
|
|
- AND (A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) > 0
|
|
|
- <![CDATA[
|
|
|
- /* 직접선택 */
|
|
|
- AND A.DAY >= DATE_FORMAT(#{startDt}, '%Y%m%d')
|
|
|
- AND A.DAY < DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
|
|
|
- ]]>
|
|
|
- <if test="multiFrontGb != null">
|
|
|
- /* 디바이스 */
|
|
|
- <foreach collection="multiFrontGb" item="item" index="index" open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiExtmallId != null">
|
|
|
- /* 제휴몰 */
|
|
|
- <foreach collection="multiExtmallId" item="item" index="index" open="AND A.EXTMALL_ID IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiSupplyCompCd != null">
|
|
|
- /* 공급처 */
|
|
|
- <foreach collection="multiSupplyCompCd" item="item" index="index" open="AND A.SUPPLY_COMP_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- <if test="multiBrandCd != null">
|
|
|
- /* 브랜드 */
|
|
|
- <foreach collection="multiBrandCd" item="item" index="index" open="AND A.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
|
|
|
- </if>
|
|
|
- GROUP BY A.ITEMKIND_CD, T4.FULL_CATE_NM
|
|
|
+ AND TC.CATE_NO = T4.LEAF_CATE_NO
|
|
|
+ AND (A.SELFMALL_AMT + A.EXTMALL_AMT) > 0
|
|
|
</select>
|
|
|
|
|
|
<!-- 카테고리 상세 조회 -->
|