Procházet zdrojové kódy

일일거래 내역 132번쿠폰제외

smlee@yes24.com před 4 roky
rodič
revize
75356bdd10

+ 2712 - 2712
src/main/java/com/style24/persistence/mybatis/shop/TsaStatistics.xml

@@ -1,2713 +1,2713 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.admin.biz.dao.TsaStatisticsDao">
-
-	<!-- 일일거래내역 -->
-	<select id="getDailyTradingList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getDailyTradingList */
-		SELECT ODIH.ORD_NO                                                                /*주문번호*/
-		     , ODIH.ORD_DTL_NO                                                            /*주문상세번호*/
-		     , ODIH.SELL_GB                                                               /*판매구분*/
-		     , ODIH.MALL_GB                                                               /*몰구분*/
-		     , ODIH.MALL_GB_NM                                                            /*몰구분명*/
-		     , ODIH.EXTMALL_ORDER_ID                                                      /*제휴몰주문번호*/
-		     , ODIH.EXTMALL_ID                                                            /*제휴몰ID*/
-		     , ODIH.EXTMALL_NM                                                            /*제휴몰명*/
-		     , ODIH.AF_LINK_CD                                                            /*제휴링크코드*/
-		     , ODIH.AF_LINK_NM                                                            /*제휴링크명*/
-		     , ODIH.AF_CHANNEL                                                            /*제휴채널코드*/
-		     , ODIH.AF_CHANNEL_NM                                                         /*제휴채널명*/
-		     , ODIH.DISTRIBUTION_GB                                                       /*유통구분*/
-		     , ODIH.DISTRIBUTION_GB_NM                                                    /*유통구분명*/
-		     , ODIH.SUPPLY_COMP_CD                                                        /*공급업체코드*/
-		     , ODIH.SUPPLY_COMP_NM                                                        /*공급업체명*/
-		     , ODIH.SUPPLY_VENDOR_CD                                                      /*공급벤더코드*/
-		     , ODIH.SUPPLY_VENDOR_NM                                                      /*공급벤더명*/
-		     , ODIH.ORD_DT                                                                /*주문일시*/
-		     , ODIH.OCCUR_DT                                                              /*발생일시*/
-		     , ODIH.BRAND_CD                                                              /*브랜드코드*/
-		     , ODIH.BRAND_ENM                                                             /*브랜드명*/
-		     , ODIH.GOODS_CD                                                              /*상품코드*/
-		     , ODIH.GOODS_NM                                                              /*상품명*/
-		     , ODIH.ITEM_CD                                                               /*단품코드*/
-		     , ODIH.OPT_CD1                                                               /*옵션코드1*/
-		     , ODIH.OPT_CD2                                                               /*옵션코드2*/
-		     , ODIH.ITEMKIND_CD                                                           /*품목코드*/
-		     , ODIH.ITEMKIND_NM                                                           /*품목명*/
-		     , SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',1)          AS ITEMKIND_NM1           /*품목명1*/
-		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1) THEN
-		                NULL
-		            ELSE
-		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1)
-		       END                                              AS ITEMKIND_NM2           /*품목명2*/
-		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1) THEN
-		                NULL
-		            ELSE
-		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1)
-		       END                                              AS ITEMKIND_NM3           /*품목명3*/
-		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',4),'>',-1) THEN
-		                ''
-		            ELSE
-		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',4),'>',-1)
-		       END                                              AS ITEMKIND_NM4           /*품목명4*/
-		     , ODIH.MALL_PRICE                                                            /*몰판매가*/
-		     , ODIH.SELL_PRICE                                                            /*판매가*/
-		     , ODIH.SELL_QTY                                                              /*판매수량*/
-		     , ODIH.SELL_AMT                                                              /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
-		     , ODIH.CPN1_DC_AMT                                                           /*즉시사용쿠폰금액*/
-		     , ODIH.GOODS_CPN_DC_AMT                                                      /*상품쿠폰사용금액*/
-		     , ODIH.CART_CPN_DC_AMT                                                       /*주문서쿠폰사용금액*/
-		     , ODIH.PNT_DC_AMT                                                            /*포인트사용금액*/
-		     , ODIH.TMTB_DC_AMT                                                           /*다다익선할인금액*/
-		     , ODIH.SELF_TMTB_DC_AMT                                                      /*자사다다익선분담액*/
-		     , ODIH.SUPPLY_COMP_TMTB_DC_AMT                                               /*입점다다익선분담액*/
-		     , ODIH.GFCD_USE_AMT                                                          /*상품권사용금액*/
-		     , ODIH.SELF_CPN_DC_AMT                                                       /*자사쿠폰분담액*/
-		     , ODIH.SUPPLY_COMP_CPN_DC_AMT                                                /*입점쿠폰분담액*/
-		     , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
-		            ELSE
-		                (ODIH.SELL_AMT
-		                 - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT )
-		                 - ODIH.TMTB_DC_AMT
-		                ) / ODIH.SELL_QTY
-		       END                                              AS REAL_SELL_PRICE        /*실판매가 /주문서쿠폰제외*/
-		     , ODIH.SELL_AMT
-		       - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT )
-		       - ODIH.TMTB_DC_AMT                               AS REAL_SELL_AMT          /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함) /주문서쿠폰제외*/
-		     , ODIH.SELL_FEE_RATE                                                         /*판매수수료율*/
-		     , ROUND(ODIH.SELL_AMT * (ODIH.SELL_FEE_RATE / 100),0)          AS SELL_FEE_AMT           /*수수료*/
-		     , ODIH.MD_NM                                                                 /*담당MD*/
-		FROM   (
-		        SELECT ODIH.ORD_DTL_ITEM_HST_SQ                                                                                    /*주문상세단품이력일련번호*/
-		             , ODIH.ORD_NO                                                                                                 /*주문번호*/
-		             , ODIH.ORD_DTL_NO                                                                                             /*주문상세번호*/
-		             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN '판매'
-		                    WHEN ODIH.ORD_DTL_STAT = 'G720_30' THEN '취소'
-		                    WHEN ODIH.ORD_DTL_STAT = 'G720_40' THEN '품절취소'
-		                    WHEN ODIH.ORD_DTL_STAT = 'G720_50' THEN '반품'
-		                    WHEN ODIH.ORD_DTL_STAT = 'G720_60' THEN '교환'
-		               END                                                                              AS SELL_GB                 /*판매구분*/
-		             , O.MALL_GB                                                                                                   /*몰구분*/
-		             , FN_GET_CODE_NM('G011',O.MALL_GB)                                                 AS MALL_GB_NM              /*몰구분명*/
-		             , OD.EXTMALL_ORDER_ID                                                                                         /*제휴몰주문번호*/
-		             , OD.EXTMALL_ID                                                                                               /*제휴몰ID*/
-		             , E.EXTMALL_NM                                                                                                /*제휴몰명*/
-		             , OD.AF_LINK_CD                                                                                               /*제휴링크코드*/
-		             , AL.AF_LINK_NM                                                                                               /*제휴링크명*/
-		             , AL.AF_CHANNEL                                                                                               /*제휴채널코드*/
-		             , FN_GET_CODE_NM('G053',AL.AF_CHANNEL)                                             AS AF_CHANNEL_NM           /*제휴채널명*/
-		             , SC.DISTRIBUTION_GB                                                                                          /*유통구분*/
-		             , FN_GET_CODE_NM('G065',SC.DISTRIBUTION_GB)                                        AS DISTRIBUTION_GB_NM      /*유통구분명*/
-		             , OD.SUPPLY_COMP_CD                                                                                           /*공급업체코드*/
-		             , SC.SUPPLY_COMP_NM                                                                                           /*공급업체명*/
-		             , SC.SUPPLY_VENDOR_CD                                                                                         /*공급벤더코드*/
-		             , SV.SUPPLY_VENDOR_NM                                                                                         /*공급벤더명*/
-		             , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S')                                        AS ORD_DT                  /*주문일시*/
-		             , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S')                                     AS OCCUR_DT                /*발생일시*/
-		             , G.BRAND_CD                                                                                                  /*브랜드코드*/
-		             , B.BRAND_ENM                                                                                                 /*브랜드명*/
-		             , OD.GOODS_CD                                                                                                 /*상품코드*/
-		             , G.GOODS_NM                                                                                                  /*상품명*/
-		             , ODIH.ITEM_CD                                                                                                /*단품코드*/
-		             , ODIH.OPT_CD1                                                                                                /*옵션코드1*/
-		             , ODIH.OPT_CD2                                                                                                /*옵션코드2*/
-		             , G.ITEMKIND_CD                                                                                               /*품목코드*/
-		             , I.ITEMKIND_NM                                                                                               /*품목명*/
-		             , ODIH.ITEM_PRICE                                                                  AS MALL_PRICE              /*몰판매가*/
-		             , CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
-		                        IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
-		                    ELSE
-		                        ODIH.ITEM_PRICE
-		               END                                                                              AS SELL_PRICE              /*판매가(제휴몰정산가적용)*/
-		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN 1 ELSE -1 END)
-		               *
-		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10'/*판매-결제완료*/ THEN
-		                             ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
-		                         ELSE /*환입-반품완료,환입-교환완료*/
-		                             ODIH.CNCL_RTN_QTY
-		                    END AS SIGNED INT)                                                          AS SELL_QTY                /*판매수량*/
-		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN 1 ELSE -1 END)
-		               *
-		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10'/*판매-결제완료*/ THEN
-		                             ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
-		                                                                             IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
-		                                                                         ELSE
-		                                                                             ODIH.ITEM_PRICE
-		                                                                    END))
-		                         ELSE /*환입-반품완료,환입-교환완료*/
-		                             (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
-		                                                            IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
-		                                                        ELSE
-		                                                            ODIH.ITEM_PRICE
-		                                                   END))
-		                    END AS SIGNED INT)                                                          AS SELL_AMT                /*판매금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.CPN1_DC_AMT                        AS CPN1_DC_AMT             /*즉시사용쿠폰금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * CASE WHEN CC2.CPN_ID=59 THEN 0 ELSE ODIH.GOODS_CPN_DC_AMT END                   AS GOODS_CPN_DC_AMT        /*상품쿠폰사용금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.CART_CPN_DC_AMT                    AS CART_CPN_DC_AMT         /*주문서쿠폰사용금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.PNT_DC_AMT                         AS PNT_DC_AMT              /*포인트사용금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT             /*다다익선할인금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
-		               (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
-		                 + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT)          AS SELF_TMTB_DC_AMT        /*자사다다익선분담액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
-		               ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
-		                + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT)                   AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.GFCD_USE_AMT                       AS GFCD_USE_AMT            /*상품권사용금액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
-		               (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
-		                 + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * CASE WHEN CC2.CPN_ID=59 THEN 0 ELSE ODIH.GOODS_CPN_DC_AMT END )            AS SELF_CPN_DC_AMT         /*자사쿠폰분담액*/
-		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
-		               ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
-		                + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT)                     AS SUPPLY_COMP_CPN_DC_AMT  /*입점쿠폰분담액*/
-		             , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
-		                        OD.SELL_FEE_RATE
-		                    ELSE /*제휴몰*/
-		                        IFNULL(E.SELL_FEE_RATE,0)
-		               END                                                                              AS SELL_FEE_RATE           /*판매수수료율*/
-		             , (SELECT U.USER_NM
-		                FROM   TB_BRAND_MD BM
-		                     , TB_USER U
-		                WHERE  BM.MD_NO = U.USER_NO
-		                AND    BM.BRAND_CD = G.BRAND_CD
-		                AND    BM.FORMAL_GB = G.FORMAL_GB
-		                LIMIT 1)                                                                        AS MD_NM                   /*담당MD*/
-		        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
-		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
-		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
-		        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
-		        INNER JOIN TB_SUPPLY_VENDOR SV ON SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
-		        INNER JOIN TB_GOODS G ON OD.GOODS_CD = G.GOODS_CD
-		        INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-		        INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-		        LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
-		        LEFT OUTER JOIN TB_AF_LINK AL ON OD.AF_LINK_CD = AL.AF_LINK_CD
-		        LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
-		                                            AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
-		        LEFT OUTER JOIN TB_CUST_COUPON CC2 ON OD.GOODS_CPN_SQ = CC2.CUST_CPN_SQ
-		        LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON CC2.CPN_ID = CB2.CPN_ID
-		                                            AND OD.SUPPLY_COMP_CD = CB2.SUPPLY_COMP_CD
-		        LEFT OUTER JOIN TB_CUST_COUPON CC3 ON OD.CART_CPN_SQ = CC3.CUST_CPN_SQ
-		        LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON CC3.CPN_ID = CB3.CPN_ID
-		                                            AND OD.SUPPLY_COMP_CD = CB3.SUPPLY_COMP_CD
-		        LEFT OUTER JOIN TB_TMTB_BURDEN TB1 ON OD.TMTB1_SQ = TB1.TMTB_SQ
-		                                          AND OD.SUPPLY_COMP_CD = TB1.TMTB_SUPPLY_CD
-		        LEFT OUTER JOIN TB_TMTB_BURDEN TB2 ON OD.TMTB2_SQ = TB2.TMTB_SQ
-		                                          AND OD.SUPPLY_COMP_CD = TB2.TMTB_SUPPLY_CD
-		        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
-		        WHERE  1 = 1
-		        AND    ODIH.REG_DT <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
-		        AND    ODIH.REG_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
-		        AND    ODIH.ORD_DTL_STAT IN ('G720_10','G720_30','G720_40','G720_50','G720_60') /*판매-결제완료,환입-취소완료,환입-품절취소,환입-반품완료,환입-교환완료*/
-		       ) ODIH
-		ORDER  BY ODIH.ORD_DTL_ITEM_HST_SQ
-	</select>
-
-	<!-- 일자별주문 목록 -->
-	<select id="getDailyOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getDailyOrderList */
-		SELECT SUM(SOD.SELF_AMT + SOD.CHANNEL_AMT + SOD.EXTMALL_AMT) AS TOT_ORD_AMT     /*매출액*/
-		     , IFNULL((SELECT SUM(SELF_AMT + CHANNEL_AMT + EXTMALL_AMT)
-		               FROM   TB_STAT_ORD_DAY
-		               WHERE  1 = 1
-		               AND    DAY <![CDATA[>=]]> DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
-		               AND    DAY <![CDATA[<]]> DATE_ADD(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR)
-		               AND    (
-		                       1 = 1
-		               <if test='frontGbP != null and frontGbP != ""'>
-		                       OR FRONT_GB = 'P'
-		               </if>
-		               <if test='frontGbM != null and frontGbM != ""'>
-		                       OR FRONT_GB = 'M'
-		               </if>
-		               <if test='frontGbA != null and frontGbA != ""'>
-		                       OR FRONT_GB = 'A'
-		               </if>
-		                      )
-		               <if test='mallGb != null and mallGb != ""'>
-		               AND    IFNULL(EXTMALL_ID,'') != '' /*제휴몰만*/
-		                   <if test='multiExtmallId != null and multiExtmallId != ""'>
-		               AND    EXTMALL_ID IN
-		                       <foreach collection="multiExtmallId" item="item" index="index"  open="(" close=")" separator=",">
-		                       #{item}
-		                       </foreach>
-		                   </if>
-		               </if>
-		               AND    (
-		                       1 = 1
-		               <if test='distributionGbWms != null and distributionGbWms != ""'>
-		                       OR DISTRIBUTION_GB = 'WMS'
-		               </if>
-		               <if test='distributionGbScm != null and distributionGbScm != ""'>
-		                       OR DISTRIBUTION_GB = 'SCM'
-		               </if>
-		                      )
-		               <if test='multiSupplyCompCd != null and multiSupplyCompCd != ""'>
-		               AND    SUPPLY_COMP_CD IN
-		                      <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
-		                      #{item}
-		                      </foreach>
-		               </if>
-		               <if test='multiAfLinkCd != null and multiAfLinkCd != ""'>
-		               AND    AF_LINK_CD IN
-		                      <foreach collection="multiAfLinkCd" item="item" index="index"  open="(" close=")" separator=",">
-		                      #{item}
-		                      </foreach>
-		               </if>
-		               <if test='multiBrandCd != null and multiBrandCd != ""'>
-		               AND    BRAND_CD IN
-		                      <foreach collection="multiBrandCd" item="item" index="index"  open="(" close=")" separator=",">
-		                      #{item}
-		                      </foreach>
-		               </if>
-		               <if test='multiItemkindCd != null and multiItemkindCd != ""'>
-		               AND    ITEMKIND_CD IN
-		                      <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
-		                      #{item}
-		                      </foreach>
-		               </if>
-		              ),0)                                           AS YOY_TOT_ORD_AMT /*전년동기대비매출액*/
-		     , SUM(SOD.SELF_AMT)                                     AS SELF_AMT        /*자사직방문매출액*/
-		     , SUM(SOD.CHANNEL_AMT)                                  AS CHANNEL_AMT     /*채널매출액*/
-		     , SUM(SOD.EXTMALL_AMT)                                  AS EXTMALL_AMT     /*제휴몰매출액*/
-		     , SUM(SOD.CNCL_AMT + SOD.RTN_AMT)                       AS CNCL_AMT        /*취/반품액*/
-		     , SUM(SOD.ORD_CNT)                                      AS ORD_CNT         /*주문건수*/
-		     , SUM(SOD.SELL_QTY)                                     AS SELL_QTY        /*판매수량*/
-		     , SUM(SOD.CNCL_QTY + SOD.RTN_QTY)                       AS CNCL_QTY        /*취/반품수량*/
-		     <choose>
-		         <when test='dayGb == "W"'> <!-- 주별 -->
-		     , CONCAT(MONTH(SOD.DAY), '월 ', WEEK(SOD.DAY,5) - WEEK(DATE_SUB(SOD.DAY, INTERVAL DAYOFMONTH(SOD.DAY) - 1 DAY), 5) + 1, '주') AS DAY
-		         </when>
-		         <when test='dayGb == "M"'> <!-- 월별 -->
-		     , DATE_FORMAT(SOD.DAY,'%Y-%m')                          AS DAY
-		         </when>
-		         <otherwise> <!-- 일별 -->
-		     , DATE_FORMAT(SOD.DAY,'%Y-%m-%d')                       AS DAY
-		         </otherwise>
-		     </choose>
-		FROM   TB_STAT_ORD_DAY SOD
-		WHERE  1 = 1
-		AND    SOD.DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
-		AND    SOD.DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
-		AND    (
-		        1 = 1
-		<if test='frontGbP != null and frontGbP != ""'>
-		        OR SOD.FRONT_GB = 'P'
-		</if>
-		<if test='frontGbM != null and frontGbM != ""'>
-		        OR SOD.FRONT_GB = 'M'
-		</if>
-		<if test='frontGbA != null and frontGbA != ""'>
-		        OR SOD.FRONT_GB = 'A'
-		</if>
-		       )
-		<if test='mallGb != null and mallGb != ""'>
-		AND    IFNULL(SOD.EXTMALL_ID,'') != '' /*제휴몰만*/
-		    <if test='multiExtmallId != null and multiExtmallId != ""'>
-		AND    SOD.EXTMALL_ID IN
-		        <foreach collection="multiExtmallId" item="item" index="index"  open="(" close=")" separator=",">
-		        #{item}
-		        </foreach>
-		    </if>
-		</if>
-		AND    (
-		        1 = 1
-		<if test='distributionGbWms != null and distributionGbWms != ""'>
-		        OR SOD.DISTRIBUTION_GB = 'WMS'
-		</if>
-		<if test='distributionGbScm != null and distributionGbScm != ""'>
-		        OR SOD.DISTRIBUTION_GB = 'SCM'
-		</if>
-		       )
-		<if test='multiSupplyCompCd != null and multiSupplyCompCd != ""'>
-		AND    SOD.SUPPLY_COMP_CD IN
-		       <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
-		       #{item}
-		       </foreach>
-		</if>
-		<if test='multiAfLinkCd != null and multiAfLinkCd != ""'>
-		AND    SOD.AF_LINK_CD IN
-		       <foreach collection="multiAfLinkCd" item="item" index="index"  open="(" close=")" separator=",">
-		       #{item}
-		       </foreach>
-		</if>
-		<if test='multiBrandCd != null and multiBrandCd != ""'>
-		AND    SOD.BRAND_CD IN
-		       <foreach collection="multiBrandCd" item="item" index="index"  open="(" close=")" separator=",">
-		       #{item}
-		       </foreach>
-		</if>
-		<if test='multiItemkindCd != null and multiItemkindCd != ""'>
-		AND    SOD.ITEMKIND_CD IN
-		       <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
-		       #{item}
-		       </foreach>
-		</if>
-		<choose>
-		         <when test='dayGb == "W"'> <!-- 주별 -->
-		GROUP  BY CONCAT(MONTH(SOD.DAY), '월 ', WEEK(SOD.DAY,5) - WEEK(DATE_SUB(SOD.DAY, INTERVAL DAYOFMONTH(SOD.DAY) - 1 DAY), 5) + 1, '주')
-		         </when>
-		         <when test='dayGb == "M"'> <!-- 월별 -->
-		GROUP  BY DATE_FORMAT(SOD.DAY,'%Y-%m')
-		         </when>
-		         <otherwise> <!-- 일별 -->
-		GROUP  BY DATE_FORMAT(SOD.DAY,'%Y-%m-%d')
-		         </otherwise>
-		     </choose>
-	</select>
-
-	<!-- 상품별 주문 목록 -->
-	<select id="getGoodsOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getGoodsOrderList */
-		SELECT
-		    FN_GET_CODE_NM('G009',A.FORMAL_GB) AS FORMAL_GB -- 정상이월구분
-		    , A.GOODS_CD                                    -- 상품코드
-		    , B.GOODS_NM                                    -- 상품명
-		    , 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           -- 장바구니쿠폰
-		    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY       -- 취/환불수량
-		    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT       -- 취/환불액
-		    , SUM(A.SAVE_PNT_AMT) AS SAVE_PNT_AMT           -- 지급포인트
-		FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_GOODS_STOCK C
-		WHERE A.GOODS_CD = B.GOODS_CD
-		    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)
-		]]>
-		<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="multiDistributionGb != null">
-			/* 물류구분 */
-			<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiAfLinkCd != null">
-			/* 채널 */
-			<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiGoodsCd != null">
-			/* 상품코드 */
-			<foreach collection="multiGoodsCd" item="item" index="index"  open="AND (" close=")" separator="OR">A.GOODS_CD LIKE CONCAT('%', #{item}, '%')</foreach>
-		</if>
-		<if test="multiFormalGb != null">
-			/* 정상/이월구분 */
-			<foreach collection="multiFormalGb" item="item" index="index"  open="AND B.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		GROUP BY A.FORMAL_GB, A.GOODS_CD, B.GOODS_NM, B.SELF_GOODS_YN
-		ORDER BY B.SELF_GOODS_YN DESC, A.FORMAL_GB, A.GOODS_CD
-	</select>
-
-	<!-- 제휴몰 주문 목록 조회 -->
-	<select id="getExtmallOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getExtmallOrderList */
-		SELECT EXTMALL_NM
-		     , TOT_AMT
-		     , SELL_QTY
-		     , EXTMALL_AMT
-		     , CNCL_QTY
-		     , CNCL_AMT
-		     , REAL_ORD_AMT
-		     , SELL_FEE_RATE
-		     , EX_USAC_AMT
-		     , YOY_TOT_ORD_AMT
-			 , 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
-				    , SUM(A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /* 총매출 */
-				    , SUM(A.SELL_QTY) AS SELL_QTY             /* 판매수량 */
-				    , SUM(A.EXTMALL_AMT) AS EXTMALL_AMT
-				    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY /*취/반품수량*/
-				    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT /*취/반품액*/
-				    , SUM(A.REAL_ORD_AMT) AS REAL_ORD_AMT     /*실결제액 */
-				    , (SELECT SELL_FEE_RATE FROM TB_EXTMALL X WHERE X.EXTMALL_ID = A.EXTMALL_ID LIMIT 1) AS SELL_FEE_RATE /*수수료율*/
-				    , (SUM(A.REAL_ORD_AMT) * (1 - (SELECT SELL_FEE_RATE FROM TB_EXTMALL X WHERE X.EXTMALL_ID = A.EXTMALL_ID LIMIT 1) / 100)) AS EX_USAC_AMT
-					, IFNULL((SELECT SUM(X.EXTMALL_AMT - X.CNCL_AMT - X.RTN_AMT)
-				               FROM   TB_STAT_ORD_DAY X
-				               WHERE  1 = 1
-				                 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(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), 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>
-				              ),0)                                           AS YOY_TOT_ORD_AMT /*전년동기대비매출액*/
-				FROM TB_STAT_ORD_DAY A
-				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)
-				]]>
-				<if test="multiBrandCd != null">
-					/* 브랜드 */
-					<foreach collection="multiBrandCd" item="item" index="index"  open="AND A.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiFormalGb != null">
-					/* 정상/이월구분 */
-					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB 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="multiAfLinkCd != null">
-					/* 채널 */
-					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiItemkindCd != null">
-					/* 품목 */
-					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiFrontGb != null">
-					/* 디바이스 */
-					<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiDistributionGb != null">
-					/* 물류구분 */
-					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				GROUP BY A.EXTMALL_ID
-	) TAB
-	ORDER BY TAB.EXTMALL_NM
-	</select>
-
-	<!-- 채널 주문목록 조회 -->
-	<select id="getChannelOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getChannelOrderList */
-		SELECT AF_LINK_CD
-		     , AF_LINK_NM
-		     , CHANNEL_AMT
-		     , TOT_AMT
-		     , SELL_QTY
-		     , CNCL_QTY
-		     , CNCL_AMT
-		     , REAL_ORD_AMT
-		     , SELL_FEE_RATE
-		     , EX_USAC_AMT
-		     , YOY_TOT_ORD_AMT
-	   		 , 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
-				    , B.AF_LINK_NM
-				    , SUM(A.CHANNEL_AMT) AS CHANNEL_AMT
-				    , SUM(A.CHANNEL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /* 총매출 */
-				    , SUM(A.SELL_QTY) AS SELL_QTY  /* 판매수량 */
-				    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY /* 취/반품수량 */
-				    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT /* 취/반품액 */
-				    , 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
-				    , 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
-				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)
-				]]>
-				<if test="multiFrontGb != null">
-					/* 디바이스 */
-					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiFormalGb != null">
-					/* 정상/이월구분 */
-					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiDistributionGb != null">
-					/* 물류구분 */
-					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
-					/* 품목 */
-					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				GROUP BY AF_LINK_CD
-	) TAB
-	ORDER BY AF_LINK_NM
-	</select>
-
-	<!-- 브랜드 주문목록 조회 -->
-	<select id="getBrandOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getBrandOrderList */
-		WITH YOY AS (
-		  SELECT X.BRAND_CD, SUM(X.SELF_AMT + X.CHANNEL_AMT + 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(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>
-			<if test="multiExtmallId != null">
-				/* 제휴몰 */
-				<foreach collection="multiExtmallId" item="item" index="index"  open="AND X.EXTMALL_ID 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="multiBrandCd != null">
-				/* 브랜드 */
-				<foreach collection="multiBrandCd" item="item" index="index"  open="AND Y.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-			</if>
-		  GROUP BY X.BRAND_CD
-		)
-		SELECT
-		    BRAND_CD /*브랜드코드*/
-		    , BRAND_ENM /*브랜드명*/
-		    , TOT_AMT /*총매출*/
-		    , SELL_QTY /*판매수량*/
-		    , SELFMALL_AMT /*자사몰매출*/
-		    , EXTMALL_AMT /*제휴몰매출*/
-		    , CNCL_AMT /*취/반품액*/
-		    , TOT_AMT_10 /*정상매출*/
-		    , TOT_AMT_20 /*이월매출*/
-		    , ROUND( ((FLOOR(TOT_AMT_10 / TOT_AMT * 10000 / 10)) / 10), 1) AS AMT_RATE_10 /*정상비*/
-		    , 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
-		        BRAND_CD
-		        , BRAND_ENM
-		        , SELF_YN
-		        , SUM(TOT_AMT) AS TOT_AMT
-		        , SUM(SELL_QTY) AS SELL_QTY
-		        , SUM(SELFMALL_AMT) AS SELFMALL_AMT
-		        , SUM(EXTMALL_AMT) AS EXTMALL_AMT
-		        , SUM(CNCL_AMT) AS CNCL_AMT
-		        , SUM(CASE WHEN FORMAL_GB = 'G009_10' THEN TOT_AMT ELSE 0 END) AS TOT_AMT_10 /*정상매출*/
-		        , SUM(CASE WHEN FORMAL_GB = 'G009_20' THEN TOT_AMT ELSE 0 END) AS TOT_AMT_20 /*이월매출*/
-		        , YOY_TOT_ORD_AMT
-		    FROM (
-		        SELECT
-		            A.BRAND_CD -- 브랜드코드
-		            , B.BRAND_ENM -- 브랜드명
-		            , B.SELF_YN -- 자사여부
-		            , A.FORMAL_GB -- 정상이월구분
-		            , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT -- 총매출
-		            , SUM(A.SELL_QTY) AS SELL_QTY -- 판매수량
-		            , SUM(A.SELF_AMT + A.CHANNEL_AMT) AS SELFMALL_AMT -- 자사몰매출
-		            , 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 LEFT OUTER JOIN YOY C ON A.BRAND_CD = C.BRAND_CD, TB_BRAND B
-		        WHERE A.BRAND_CD = B.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)
-				]]>
-				<if test="multiFrontGb != null">
-					/* 디바이스 */
-					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiFormalGb != null">
-					/* 정상/이월구분 */
-					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiDistributionGb != null">
-					/* 물류구분 */
-					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
-					/* 품목 */
-					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
-					/* 채널 */
-					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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.BRAND_CD, B.BRAND_ENM, B.SELF_YN, A.FORMAL_GB
-		    ) X
-		    GROUP BY BRAND_CD, BRAND_ENM, SELF_YN
-		) Z
-		ORDER BY SELF_YN DESC, BRAND_ENM
-	</select>
-
-	<!-- 시간별 주문 조회 -->
-	<select id="getHourlyOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getHourlyOrderList */
-		WITH TAB AS (
-		    SELECT
-		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
-		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
-		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
-		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
-		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
-		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
-		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
-		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
-		    FROM TB_STAT_ORD_TIME A
-		    WHERE 1=1
-		    	<if test="dtGb != null">
-					<foreach collection="dtGb" item="item" index="index">
-						<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')) - 1 DAY)
-					        AND A.DAY_TIME < DATE_FORMAT(#{startDt}, '%Y%m%d')
-					        ]]>
-						</if>
-						<if test="item == 'YOY'">
-					        <![CDATA[
-					        /* 전년비교 */
-					        AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt}, '%Y%m%d'), INTERVAL -1 YEAR )
-					        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="multiFrontGb != null">
-					/* 디바이스 */
-					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiFormalGb != null">
-					/* 정상/이월구분 */
-					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-				</if>
-				<if test="multiDistributionGb != null">
-					/* 물류구분 */
-					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
-					/* 품목 */
-					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
-					/* 채널 */
-					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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>
-		        AND A.SHOT_DELV_YN = 'Y' /*총알배송*/
-		    GROUP BY HOUR
-		)
-		SELECT
-		    A.HOUR
-		    , A.ORD_AMT /*매출*/
-		    , B.ORD_AMT AS COMP_ORD_AMT /*비교*/
-		    , 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 /*판매수*/
-		    , A.CUST_PRICE /*객단가*/
-		    , A.CNCL_QTY /*취반품개수*/
-		    , A.CNCL_AMT /*취반품액*/
-		FROM (
-		    SELECT
-		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
-		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
-		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
-		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
-		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
-		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
-		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
-		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
-		    FROM TB_STAT_ORD_TIME A
-		    WHERE 1=1
-		    <![CDATA[
-		    AND A.DAY_TIME >= DATE_FORMAT(#{startDt}, '%Y%m%d')
-		    AND A.DAY_TIME < 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="multiFormalGb != null">
-				/* 정상/이월구분 */
-				<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-			</if>
-			<if test="multiDistributionGb != null">
-				/* 물류구분 */
-				<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
-				/* 품목 */
-				<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
-				/* 채널 */
-				<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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 HOUR
-		) A
-		LEFT OUTER JOIN TAB B ON A.HOUR = B.HOUR
-		ORDER BY A.HOUR
-	</select>
-
-	<!-- 카테고리별 주문 조회 -->
-	<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 -- 소분류
-			, (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.SELFMALL_AMT + A.EXTMALL_AMT) > 0
-	</select>
-
-	<!-- 카테고리 상세 조회 -->
-	<select id="getCategoryOrderDetailList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getCategoryOrderDetailList */
-		SELECT
-		    C.BRAND_ENM
-		    , A.GOODS_CD
-		    , B.GOODS_NM
-		    , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /*총매출*/
-		    , SUM(A.SELL_QTY) AS SELL_QTY /*판매수량*/
-		    , SUM(A.ORD_CUST) AS ORD_CUST /*구매자수*/
-		FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C
-		WHERE A.GOODS_CD = B.GOODS_CD
-		    AND A.BRAND_CD = C.BRAND_CD
-		    AND (A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) > 0
-		    AND A.ITEMKIND_CD = #{itemkindCd}
-	        <![CDATA[
-	        /* 직접선택 */
-	        AND A.DAY >= DATE_FORMAT(#{startDt}, '%Y%m%d')
-	        AND A.DAY <  DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
-	        ]]>
-		GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM
-	</select>
-
-	<!-- 클래임 주문조회 -->
-	<select id="getClaimOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getClaimOrderList */
-		SELECT
-		    DATE_FORMAT(DAY, '%m-%d') AS DAY
-		    , SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) AS CLM_AMT /*클레임액*/
-		    , SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) AS CLM_QTY /*클레임수*/
-		    , ROUND(FLOOR(SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) / SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT) * 100 * 10) / 10, 1) AS AMT_RATE
-		    , ROUND(FLOOR(SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) / SUM(A.SELL_QTY) * 100 * 10) / 10, 1) AS CLM_RATE
-		    , SUM(A.CNCL_QTY) AS CNCL_QTY /*취소수*/
-		    , SUM(A.CNCL_AMT) AS CNCL_AMT /*취소액*/
-		    , SUM(A.RTN_QTY) AS RTN_QTY /*반품수*/
-		    , SUM(A.RTN_AMT) AS RTN_AMT /*반품액*/
-		    , SUM(A.CHG_QTY) AS CHG_QTY /*교환수*/
-		    , SUM(A.CHG_DELV_FEE) AS CHG_DELV_FEE /*교환배송비*/
-		FROM TB_STAT_ORD_DAY A
-		WHERE 1=1
-	        <![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>
-			<if test="multiItemkindCd != null">
-				/* 품목 */
-				<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-			</if>
-			<if test="multiAfLinkCd != null">
-				/* 채널 */
-				<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
-			</if>
-		GROUP BY DATE_FORMAT(DAY, '%m-%d')
-	</select>
-
-	<!-- 베스트 상품 조회 -->
-	<sql id="getBestOrderListSql">
-        /* TsaStatistics.getBestOrderList */
-        SELECT
-            (SELECT SUBSTRING_INDEX(SYS_IMG_NM , '/', 2) FROM TB_GOODS_IMG X WHERE X.GOODS_CD = B.GOODS_CD AND X.DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM /*상품이미지*/
-            , C.BRAND_ENM /*브랜드명*/
-            , A.GOODS_CD /*상품코드*/
-            , B.GOODS_NM /*상품명*/
-            , CASE WHEN A.DISTRIBUTION_GB = 'WMS' THEN '위탁' ELSE '입점' END AS DISTRIBUTION_GB /*구분*/
-            , B.CURR_PRICE /*판매가*/
-            , SUM(A.SELL_QTY - A.CNCL_QTY - A.RTN_QTY) AS SELL_QTY /*판매수*/
-            , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /*매출액*/
-            , SUM(D.STOCK_QTY) AS STOCK_QTY /*현재고수량*/
-        FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C, TB_GOODS_STOCK D
-        WHERE A.GOODS_CD = B.GOODS_CD
-            AND A.BRAND_CD = C.BRAND_CD
-            AND A.GOODS_CD = D.GOODS_CD
-            <![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="multiDistributionGb != null">
-                /* 물류구분 */
-                <foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
-            </if>
-            <if test="multiFormalGb != null">
-                /* 정상/이월구분 */
-                <foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
-            </if>
-            <if test="multiSexGb != null">
-                /* 성별구분 */
-                <foreach collection="multiSexGb" item="item" index="index"  open="AND A.SEX_GB IN (" close=")" separator=",">#{item}</foreach>
-            </if>
-            <if test="multiAgeGb != null">
-                /* 성별구분 */
-                <foreach collection="multiAgeGb" item="item" index="index"  open="AND A.AGE 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>
-            <if test="multiItemkindCd != null">
-                /* 품목 */
-                <foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-            </if>
-            <if test="multiAfLinkCd != null">
-                /* 채널 */
-                <foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
-            </if>
-        GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM, A.DISTRIBUTION_GB, B.CURR_PRICE
-        ORDER BY TOT_AMT DESC
-	</sql>
-
-	<!-- 베스트 주문조회 -->
-	<select id="getBestOrderList" parameterType="Statistics" resultType="Statistics">
-		<include refid="getBestOrderListSql"></include>
-	</select>
-	<!-- 베스트 주문조회 -->
-	<select id="getBestOrderListMap" parameterType="Statistics" resultType="paramMap">
-		<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
-			, ROUND((USE_CNT / DOWN_CNT) * 100 * 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
-			, ROUND((X.CUST_CPN_CNT / Z.CUST_CNT * 100 * 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
-              <choose>
-				  <when test="applyGbArr != null and applyGbArr != ''">
-					  /* 프로모션유형 */
-					  <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>
-				  </when>
-		    	<otherwise>
-					/* 프로모션유형값없을시 */
-					AND (B.TMTB1_DC_AMT + B.TMTB2_DC_AMT) > 0
-				</otherwise>
-			  </choose>
-		)
-		-- 수량할인
-		, 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
-		      <choose>
-				  <when test="distributionGbS != null and distributionGbS !='' and distributionGbW != null and distributionGbW !=''">
-					  AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12', 'G065_20')
-				  </when>
-				  <when test="distributionGbW != null and distributionGbW !=''">
-					  AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12')
-				  </when>
-				  <when test="distributionGbS != null and distributionGbS !=''">
-					  AND C.DISTRIBUTION_GB = 'G065_20'
-				  </when>
-			  </choose>
-		      <if test="multiPlanSq != 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
-		    , ROUND((SUM(CUST_CNT) / (SELECT TOT_CUST_CNT FROM TAB) * 100 * 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
-		      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>
-
-	<!-- 부결제수단별통계 목록 -->
-	<select id="getSubPaymentList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getSubPaymentList */
-		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>
-			, SUM(A.PNT_GIVE) AS PNT_GIVE -- 포인트적립액
-			, SUM(A.PNT_ORD_CNT) AS PNT_ORD_CNT -- 포인트사용주문수
-			, SUM(A.PNT_USE) AS PNT_USE -- 포인트사용액
-			, SUM(A.GIFT_REG_CNT) AS GIFT_REG_CNT -- 상품권등록매수
-			, SUM(A.GIFT_ORD_CNT) AS GIFT_ORD_CNT -- 상품권주문수
-			, SUM(A.GIFT_USE) AS GIFT_USE -- 상품권사용액
-		FROM TB_STAT_SUB_PAY A
-		WHERE 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)
-		<choose>
-			<when test='pointGb != null and pointGb != "" and giftCardGb != null and giftCardGb != ""'>
-				AND OCCUR_GB IN(#{pointGb}, #{giftCardGb})
-			</when>
-			<when test='pointGb != null and pointGb != ""'>
-				AND OCCUR_GB = #{pointGb}
-			</when>
-			<when test='giftCardGb != null and giftCardGb != ""'>
-				AND OCCUR_GB = {giftCardGb}
-			</when>
-		</choose>
-		<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>
-	</select>
-
-	<!-- 포인트잔액 -->
-	<select id="getRemainPoint" resultType="java.lang.Long">
-		/* TsaStatistics.getRemainPoint */
-		SELECT
-			SUM(RM_PNT_AMT) AS RM_PNT_AMT
-		FROM TB_CUST_POINT A
-		WHERE A.EXP_CMP_DT IS NULL
-	</select>
-
-	<!-- 포인트잔액 -->
-	<select id="getRemainGiftCard" resultType="java.lang.Long">
-		/* TsaStatistics.getRemainGiftCard */
-		SELECT
-		SUM(RM_GFCD_AMT) AS RM_GFCD_AMT
-		FROM TB_CUST_GIFTCARD A
-		WHERE DATE_FORMAT(USE_EXP_DATE, '%Y%m%d') &lt; NOW()
-	</select>
-
-	<!-- 가입통계 -->
-	<select id="getCustomerJoinList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getCustomerJoinList */
-		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>
-			, MAX(ALL_CNT) AS ALL_CNT
-			, MAX(REAL_CNT) AS REAL_CNT
-			, MAX(DORM_CNT) AS DORM_CNT
-			, MAX(VIP_CNT) AS VIP_CNT
-			, MAX(GOLD_CNT) AS GOLD_CNT
-			, MAX(SILVER_CNT) AS SILVER_CNT
-			, MAX(BRONZE_CNT) AS BRONZE_CNT
-			, MAX(WELCOME_CNT) AS WELCOME_CNT
-			, SUM(JOIN_CNT) AS JOIN_CNT
-			, SUM(DR_JOIN_CNT) AS DR_JOIN_CNT
-			, SUM(AF_JOIN_CNT) AS AF_JOIN_CNT
-			, SUM(CHG_DORM_CNT) AS CHG_DORM_CNT
-			, SUM(RM_DORM_CNT) AS RM_DORM_CNT
-			, SUM(SECEED_CNT) AS SECEED_CNT
-		FROM TB_STAT_CUST
-		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
-		  AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
-	<if test="multiSexGb != null">
-		/* 성별구분 */
-		<foreach collection="multiSexGb" item="item" index="index"  open="AND SEX_GB IN (" close=")" separator=",">#{item}</foreach>
-	</if>
-	<if test="multiAgeGb != null">
-		/* 연령구분 */
-		<foreach collection="multiAgeGb" item="item" index="index"  open="AND AGE IN (" close=")" separator=",">#{item}</foreach>
-	</if>
-	<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>
-		ORDER BY DAY DESC
-	</select>
-
-	<!-- 등급별주문현황 -->
-	<select id="getCustomerGradOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getCustomerGradOrderList */
-		SELECT
-			CASE WHEN A.CUST_GRADE = 'G110_10' THEN 1
-				WHEN A.CUST_GRADE = 'G110_20' THEN 2
-				WHEN A.CUST_GRADE = 'G110_30' THEN 3
-				WHEN A.CUST_GRADE = 'G110_40' THEN 4
-				WHEN A.CUST_GRADE = 'G110_50' THEN 5
-			ELSE 6 END AS PRIORITY
-			, FN_GET_CODE_NM('G110', A.CUST_GRADE) AS CUST_GRADE
-			, SUM(A.ORD_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_ORD_AMT -- 총매출액
-			, SUM(A.ORD_AMT) AS ORD_AMT -- 매출액
-			, SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT -- 취/반품액
-			, SUM(A.ORD_CNT) AS ORD_CNT -- 주문수
-			, SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY -- 취/반품갯수
-			, ROUND(CEIL(AVG(A.ORD_CNT) * 10) / 10, 1) AS AVG_ORD_CNT -- 평균주문수
-			, ROUND(CEIL(AVG(A.SELL_QTY) * 10) / 10, 1) AS AVG_SELL_QTY -- 평균주문상품개수
-			, FLOOR(SUM(A.ORD_AMT) / SUM(A.ORD_CNT)) AS CUST_PRICE -- 객단가
-		FROM TB_STAT_CUST_ORD A
-		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
-			AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND SEX_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND AGE IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		GROUP BY A.CUST_GRADE
-		ORDER BY PRIORITY
-	</select>
-
-	<!-- 등급별주문현황 -->
-	<select id="getCustomerAgeOrderList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getCustomerAgeOrderList */
-		SELECT
-			CASE WHEN A.AGE != 'X' THEN CONCAT(A.AGE, '대') ELSE '50대이상/기타' END AS AGE
-			, FN_GET_CODE_NM('G007', A.SEX_GB) AS SEX_GB
-			, SUM(A.ORD_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_ORD_AMT -- 총매출액
-			, SUM(A.ORD_AMT) AS ORD_AMT -- 매출액
-			, SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT -- 취/반품액
-			, SUM(A.ORD_CNT) AS ORD_CNT -- 주문수
-			, SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY -- 취/반품갯수
-			, ROUND(CEIL(AVG(A.ORD_CNT) * 10) / 10, 1) AS AVG_ORD_CNT -- 평균주문수
-			, ROUND(CEIL(AVG(A.SELL_QTY) * 10) / 10, 1) AS AVG_SELL_QTY -- 평균주문상품개수
-			, FLOOR(SUM(A.ORD_AMT) / SUM(A.ORD_CNT)) AS CUST_PRICE -- 객단가
-		FROM TB_STAT_CUST_ORD A
-		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
-			AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiGradeGb != null">
-			/* 등급 */
-			<foreach collection="multiGradeGb" item="item" index="index"  open="AND CUST_GRADE IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		GROUP BY A.AGE, A.SEX_GB
-		ORDER BY A.AGE, A.SEX_GB
-	</select>
-
-	<!-- 구매자랭킹 -->
-	<select id="getCustomerRankingList" parameterType="Statistics" resultType="Statistics">
-		/* TsaStatistics.getCustomerRankingList */
-		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
-				, 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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d')                         -- 시작일변수
-				AND A.PAY_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
-				AND E.CUST_NO > 0
-				AND A.MALL_GB = 'G011_10'
-				AND B.ORD_EXCH_GB = 'O'
-				AND B.ORD_DTL_STAT = 'G013_20' -- 결제완료
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(E.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-			) A
-			WHERE RNK = 1
-		)
-		-- 판매수
-		, TAB_SELL_QTY AS (
-			SELECT
-				SUM(ORD_QTY) AS VAL
-				, '1' AS GBN
-				, CUST_NO
-			FROM TAB
-			GROUP BY CUST_NO
-		)
-		-- 매출
-		, TAB_ORD AS (
-			SELECT
-				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
-				, CUST_NO
-			FROM TAB A
-			GROUP BY CUST_NO
-		)
-		-- 취소갯수
-		, TAB_CNCL_QTY AS (
-			SELECT SUM(CHG_QTY) AS VAL
-				, '3' AS GBN
-				, C.CUST_NO
-			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
-				AND COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
-				AND MALL_GB = 'G011_10'
-				AND G.CUST_NO > 0
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND C.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-			GROUP BY C.CUST_NO
-		)
-		-- 반품갯수
-		, TAB_RTN_QTY AS (
-			SELECT SUM(CHG_QTY) AS VAL
-				, '4' AS GBN
-				, C.CUST_NO
-			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
-				AND COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
-				AND MALL_GB = 'G011_10'
-				AND G.CUST_NO > 0
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND C.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-			GROUP BY C.CUST_NO
-		)
-		-- 취소액
-		, TAB_CNCL_AMT AS (
-			SELECT 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.CUST_NO
-			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
-				AND B.COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
-				AND MALL_GB = 'G011_10'
-				AND G.CUST_NO > 0
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND D.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-			GROUP BY D.CUST_NO
-		)
-		-- 반품액
-		, TAB_RTN_AMT AS (
-			SELECT 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.CUST_NO
-			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
-				AND B.COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
-				AND MALL_GB = 'G011_10'
-				AND G.CUST_NO > 0
-		<if test="multiFrontGb != null">
-			/* 디바이스 */
-			<foreach collection="multiFrontGb" item="item" index="index"  open="AND D.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiSexGb != null">
-			/* 성별구분 */
-			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiAgeGb != null">
-			/* 연령구분 */
-			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiBrandCd != null">
-			/* 브랜드 */
-			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-		<if test="multiItemkindCd != null">
-			/* 품목 */
-			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
-		</if>
-			GROUP BY D.CUST_NO
-		)
-		-- 주문수
-		, TAB_ORD_CNT AS (
-			SELECT
-				SUM(VAL) AS VAL
-				, '7' AS GBN
-				, CUST_NO
-			FROM (
-				SELECT
-					1 AS VAL
-					, ORD_NO
-					, CUST_NO
-				FROM TAB
-				GROUP BY ORD_NO, CUST_NO
-			) A
-			GROUP BY CUST_NO
-		)
-		SELECT
-			CONCAT(SUBSTRING(CUST_ID, 1, 3), '****', '(', SUBSTRING(FN_DEC_AES(CUST_NM), 1, 1), '**', ')') AS CUST_ID -- 아이디
-			, 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
-		    , X.CUST_NO
-			, FN_GET_CODE_NM('G007', FN_DEC_AES(SEX_GB)) AS SEX_GB
-			, FN_GET_CODE_NM('G110', CUST_GRADE) AS CUST_GRADE -- 등급
-			, SUM(ORD_AMT - CNCL_AMT - RTN_AMT) AS TOT_ORD_AMT -- 매출액
-			, SUM(ORD_CNT) AS ORD_CNT -- 주문수
-			, SUM(SELL_QTY - CNCL_QTY - RTN_QTY) AS SELL_QTY -- 판매수
-			, FLOOR(SUM(ORD_AMT) / SUM(ORD_CNT)) AS CUST_PRICE -- 객단가
-			, IFNULL((SELECT SUM(RM_PNT_AMT) FROM TB_CUST_POINT CP WHERE CP.CUST_NO = X.CUST_NO AND EXP_CMP_DT IS NULL), 0) AS CUST_POINT -- 회원포인트
-		FROM (
-			SELECT
-				CUST_NO
-				, 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 CUST_NO
-		) X, TB_CUSTOMER Y
-		WHERE X.CUST_NO = Y.CUST_NO
-		GROUP BY X.CUST_NO
-		ORDER BY TOT_ORD_AMT DESC
-		LIMIT 50
-	</select>
-
-	<!-- 미로그인현황 -->
-	<select id="getCustomerUnloginList" resultType="Statistics">
-		/* TsaStatistics.getCustomerUnloginList */
-		SELECT
-			X.*
-			, ROUND(CNT_5 / TOT_CNT * 100) AS PER_CNT_5
-			, ROUND(CNT_4 / TOT_CNT * 100) AS PER_CNT_4
-			, ROUND(CNT_3 / TOT_CNT * 100) AS PER_CNT_3
-			, ROUND(CNT_2 / TOT_CNT * 100) AS PER_CNT_2
-			, ROUND(CNT_1 / TOT_CNT * 100) AS PER_CNT_1
-		FROM (
-			SELECT
-				SUM(CASE WHEN GB = 5 THEN CNT ELSE 0 END) AS CNT_5
-				, SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4
-				, SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3
-				, SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2
-				, SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1
-				, SUM(CNT) AS TOT_CNT
-			FROM (
-				-- 1년
-				SELECT COUNT(1) AS CNT
-					, 5 AS GB -- 1년 ~
-				FROM TB_CUSTOMER
-				WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 YEAR ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
-				-- 12개월
-				UNION ALL
-				SELECT COUNT(1) AS CNT
-					, 4 AS GB -- 9개월~12개월
-				FROM TB_CUSTOMER
-				WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 YEAR ), '%Y%m%d%H%i%s')
-					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
-				-- 9개월
-				UNION ALL
-				SELECT COUNT(1) AS CNT
-					, 3 AS GB -- 6개월~9개월
-				FROM TB_CUSTOMER
-				WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
-					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-				-- 6개월
-				UNION ALL
-				SELECT COUNT(1) AS CNT
-					, 2 AS GB -- 3개월~6개월
-				FROM TB_CUSTOMER
-				WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-				-- 3개월
-				UNION ALL
-				SELECT COUNT(1) AS CNT
-					, 1 AS GB -- ~3개월
-				FROM TB_CUSTOMER
-				WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-					AND LOGIN_LDT &lt; DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
-			) Z
-		) X
-	</select>
-
-	<!-- 미로그인현황 회원리스트 -->
-	<select id="getCustomerUnloginInfoList" parameterType="Statistics" resultType="paramMap">
-		/* TsaStatistics.getCustomerUnloginInfoList */
-		SELECT (
-		        SELECT CASE WHEN ROLE_CD = 'G001_0000'
-		                         THEN A.CUST_ID
-		                    ELSE CONCAT(LEFT(A.CUST_ID, 3), REPEAT('*', CHAR_LENGTH(A.CUST_ID) - 3 ) )
-		               END
-		        FROM   TB_USER
-		        WHERE  USER_NO = #{regNo}
-		       ) AS CUST_ID
-		     , (
-		        SELECT CASE WHEN ROLE_CD = 'G001_0000'
-		                         THEN A.CUST_NM
-		                    ELSE CONCAT(LEFT(A.CUST_NM, 1), REPEAT('*', CHAR_LENGTH(A.CUST_NM) - 1 ) )
-		               END
-		        FROM   TB_USER
-		        WHERE  USER_NO = #{regNo}
-		       ) AS CUST_NM
-		    , (
-		       SELECT CASE WHEN ROLE_CD = 'G001_0000'
-		                        THEN A.CELL_PHNNO
-		                   ELSE CONCAT(substr(A.CELL_PHNNO, 1, 4), '****', substr(A.CELL_PHNNO, 9, 13))
-		              END
-		       FROM   TB_USER
-		       WHERE  USER_NO = #{regNo}
-		      ) AS CELL_PHNNO
-		    , (
-		       SELECT CASE WHEN ROLE_CD = 'G001_0000'
-		                        THEN A.EMAIL
-		                   ELSE CONCAT(LEFT(A.EMAIL, 2), REPEAT('*', instr(A.EMAIL, '@') - 3), SUBSTRING(A.EMAIL, instr(EMAIL, '@'), LENGTH(A.EMAIL)))
-		              END
-		       FROM   TB_USER
-		       WHERE  USER_NO = #{regNo}
-		      ) AS EMAIL
-		    , MONTHS
-		    , BIRTH_YM
-		FROM   (
-		        SELECT CUST_ID
-		             , FN_DEC_AES(CUST_NM)                    AS CUST_NM
-		             , TIMESTAMPDIFF(MONTH, LOGIN_LDT, NOW()) AS MONTHS
-		             , CASE WHEN CELL_PHNNO != 'xx'
-		                         THEN FN_DEC_AES(CELL_PHNNO)
-		                    ELSE CELL_PHNNO
-		               END                                    AS CELL_PHNNO
-		             , FN_DEC_AES(EMAIL)                      AS EMAIL
-		             , SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
-		        FROM   TB_CUSTOMER
-		        WHERE  CUST_NO > 0
-		        AND    CUST_STAT = 'G104_10'
-		        AND    LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), '%Y%m%d%H'), '%Y%m%d%H'), '%Y-%m-%d %H:%i:%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
-		       ) A
-	</select>
-
-	<!-- 마케팅수신동의현황 -->
-	<select id="getCustomerMarketingList" resultType="Statistics">
-		/* TsaStatistics.getCustomerMarketingList */
-		SELECT
-			X.*
-			 , ROUND(CNT_4 / TOT_CNT * 100) AS PER_CNT_4
-			 , ROUND(CNT_3 / TOT_CNT * 100) AS PER_CNT_3
-			 , ROUND(CNT_2 / TOT_CNT * 100) AS PER_CNT_2
-			 , ROUND(CNT_1 / TOT_CNT * 100) AS PER_CNT_1
-		FROM (
-			 SELECT SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4
-				  , SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3
-				  , SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2
-				  , SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1
-				  , SUM(CNT)                                  AS TOT_CNT
-			 FROM (
-				  -- SMS
-				  SELECT COUNT(1) AS CNT
-					   , 4        AS GB
-				  FROM TB_CUSTOMER
-				  WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND SMS_AGREE_YN = 'Y'
-					-- EMAIL
-				  UNION ALL
-				  SELECT COUNT(1) AS CNT
-					   , 3        AS GB
-				  FROM TB_CUSTOMER
-				  WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND EMAIL_AGREE_YN = 'Y'
-					-- 푸쉬
-				  UNION ALL
-				  SELECT COUNT(1) AS CNT
-					   , 2        AS GB
-				  FROM TB_CUSTOMER
-				  WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND APP_AGREE_YN = 'Y'
-					-- 미동의
-				  UNION ALL
-				  SELECT COUNT(1) AS CNT
-					   , 1        AS GB
-				  FROM TB_CUSTOMER
-				  WHERE CUST_NO > 0
-					AND CUST_STAT = 'G104_10'
-					AND SMS_AGREE_YN = 'N'
-					AND EMAIL_AGREE_YN = 'N'
-					AND APP_AGREE_YN = 'N'
-			  ) Z
-		 ) X
-	</select>
-
-	<!-- 휴면전환 잔여일별현황 -->
-	<select id="getCustomerDormRemainList" resultType="Statistics">
-		/* TsaStatistics.getCustomerDormRemainList */
-		SELECT
-			SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4 -- 12개월
-			, SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3 -- 9개월
-			, SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2 -- 6개월
-			, SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1 -- 9개월
-		FROM (
-			-- 12개월
-			SELECT COUNT(1) AS CNT
-				, 4 AS GB -- 12개월
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
-			-- 9개월
-			UNION ALL
-			SELECT COUNT(1) AS CNT
-				, 3 AS GB -- 9개월
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
-			-- 6개월
-			UNION ALL
-			SELECT COUNT(1) AS CNT
-				, 2 AS GB -- 6개월
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-			-- 3개월
-			UNION ALL
-			SELECT COUNT(1) AS CNT
-				, 1 AS GB -- ~3개월
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-		) Z
-	</select>
-
-	<!-- 휴면전환 잔여일별현황 회원리스트 -->
-	<select id="getCustomerDormRemainInfoList" parameterType="Statistics" resultType="paramMap">
-	/* TsaStatistics.getCustomerDormRemainInfoList */
-		SELECT GB
-			 , BIRTH_YM
-		     , (
-			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
-							     THEN A.CUST_ID
-				   	        ELSE CONCAT(LEFT(A.CUST_ID, 3), REPEAT('*', CHAR_LENGTH(A.CUST_ID) - 3 ) )
-					   END
-			    FROM   TB_USER
-			    WHERE  USER_NO = #{regNo}
-		       ) AS CUST_ID
-			 , (
-			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
-							     THEN A.CUST_NM
-						    ELSE CONCAT(LEFT(A.CUST_NM, 1), REPEAT('*', CHAR_LENGTH(A.CUST_NM) - 1 ) )
-					   END
-			    FROM   TB_USER
-			    WHERE  USER_NO = #{regNo}
-		       ) AS CUST_NM
-			 , (
-			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
-							     THEN A.CELL_PHNNO
-						    ELSE CONCAT(substr(A.CELL_PHNNO, 1, 4), '****', substr(A.CELL_PHNNO, 9, 13))
-					   END
-			    FROM   TB_USER
-			    WHERE  USER_NO = #{regNo}
-		       ) AS CELL_PHNNO
-			 , (
-			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
-							     THEN A.EMAIL
-						    ELSE CONCAT(LEFT(A.EMAIL, 2), REPEAT('*', instr(A.EMAIL, '@') - 3), SUBSTRING(A.EMAIL, instr(EMAIL, '@'), LENGTH(A.EMAIL)))
-					   END
-			    FROM   TB_USER
-			    WHERE  USER_NO = #{regNo}
-		       ) AS EMAIL
-		FROM (
-			-- 12개월
-			SELECT '12개월' AS GB -- 12개월
-				, CUST_ID
-				, FN_DEC_AES(CUST_NM) AS CUST_NM
-				, CASE WHEN CELL_PHNNO != 'xx'
-		                         THEN FN_DEC_AES(CELL_PHNNO)
-					   ELSE CELL_PHNNO
-				  END                                AS CELL_PHNNO
-				, FN_DEC_AES(EMAIL) AS EMAIL
-				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT > DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
-			-- 9개월
-			UNION ALL
-			SELECT '9개월' AS GB -- 9개월
-				, CUST_ID
-				, FN_DEC_AES(CUST_NM) AS CUST_NM
-				, CASE WHEN CELL_PHNNO != 'xx'
-		                         THEN FN_DEC_AES(CELL_PHNNO)
-					   ELSE CELL_PHNNO
-				  END                                AS CELL_PHNNO
-				, FN_DEC_AES(EMAIL) AS EMAIL
-				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT <![CDATA[ < ]]>  DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
-			-- 6개월
-			UNION ALL
-			SELECT '6개월' AS GB -- 6개월
-				, CUST_ID
-				, FN_DEC_AES(CUST_NM) AS CUST_NM
-				, CASE WHEN CELL_PHNNO != 'xx'
-		                         THEN FN_DEC_AES(CELL_PHNNO)
-					   ELSE CELL_PHNNO
-				  END                                AS CELL_PHNNO
-				, FN_DEC_AES(EMAIL) AS EMAIL
-				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
-			-- 3개월
-			UNION ALL
-			SELECT '3개월' AS GB -- ~3개월
-				, CUST_ID
-				, FN_DEC_AES(CUST_NM) AS CUST_NM
-				, CASE WHEN CELL_PHNNO != 'xx'
-		                         THEN FN_DEC_AES(CELL_PHNNO)
-					   ELSE CELL_PHNNO
-				  END                                AS CELL_PHNNO
-				, FN_DEC_AES(EMAIL) AS EMAIL
-			, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
-			FROM TB_CUSTOMER
-			WHERE CUST_NO > 0
-				AND CUST_STAT = 'G104_10'
-				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
-				AND LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
-		) A
-	</select>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.admin.biz.dao.TsaStatisticsDao">
+
+	<!-- 일일거래내역 -->
+	<select id="getDailyTradingList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getDailyTradingList */
+		SELECT ODIH.ORD_NO                                                                /*주문번호*/
+		     , ODIH.ORD_DTL_NO                                                            /*주문상세번호*/
+		     , ODIH.SELL_GB                                                               /*판매구분*/
+		     , ODIH.MALL_GB                                                               /*몰구분*/
+		     , ODIH.MALL_GB_NM                                                            /*몰구분명*/
+		     , ODIH.EXTMALL_ORDER_ID                                                      /*제휴몰주문번호*/
+		     , ODIH.EXTMALL_ID                                                            /*제휴몰ID*/
+		     , ODIH.EXTMALL_NM                                                            /*제휴몰명*/
+		     , ODIH.AF_LINK_CD                                                            /*제휴링크코드*/
+		     , ODIH.AF_LINK_NM                                                            /*제휴링크명*/
+		     , ODIH.AF_CHANNEL                                                            /*제휴채널코드*/
+		     , ODIH.AF_CHANNEL_NM                                                         /*제휴채널명*/
+		     , ODIH.DISTRIBUTION_GB                                                       /*유통구분*/
+		     , ODIH.DISTRIBUTION_GB_NM                                                    /*유통구분명*/
+		     , ODIH.SUPPLY_COMP_CD                                                        /*공급업체코드*/
+		     , ODIH.SUPPLY_COMP_NM                                                        /*공급업체명*/
+		     , ODIH.SUPPLY_VENDOR_CD                                                      /*공급벤더코드*/
+		     , ODIH.SUPPLY_VENDOR_NM                                                      /*공급벤더명*/
+		     , ODIH.ORD_DT                                                                /*주문일시*/
+		     , ODIH.OCCUR_DT                                                              /*발생일시*/
+		     , ODIH.BRAND_CD                                                              /*브랜드코드*/
+		     , ODIH.BRAND_ENM                                                             /*브랜드명*/
+		     , ODIH.GOODS_CD                                                              /*상품코드*/
+		     , ODIH.GOODS_NM                                                              /*상품명*/
+		     , ODIH.ITEM_CD                                                               /*단품코드*/
+		     , ODIH.OPT_CD1                                                               /*옵션코드1*/
+		     , ODIH.OPT_CD2                                                               /*옵션코드2*/
+		     , ODIH.ITEMKIND_CD                                                           /*품목코드*/
+		     , ODIH.ITEMKIND_NM                                                           /*품목명*/
+		     , SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',1)          AS ITEMKIND_NM1           /*품목명1*/
+		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',1),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1) THEN
+		                NULL
+		            ELSE
+		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1)
+		       END                                              AS ITEMKIND_NM2           /*품목명2*/
+		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',2),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1) THEN
+		                NULL
+		            ELSE
+		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1)
+		       END                                              AS ITEMKIND_NM3           /*품목명3*/
+		     , CASE WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',3),'>',-1) = SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',4),'>',-1) THEN
+		                ''
+		            ELSE
+		                SUBSTRING_INDEX(SUBSTRING_INDEX(ODIH.ITEMKIND_NM,'>',4),'>',-1)
+		       END                                              AS ITEMKIND_NM4           /*품목명4*/
+		     , ODIH.MALL_PRICE                                                            /*몰판매가*/
+		     , ODIH.SELL_PRICE                                                            /*판매가*/
+		     , ODIH.SELL_QTY                                                              /*판매수량*/
+		     , ODIH.SELL_AMT                                                              /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
+		     , ODIH.CPN1_DC_AMT                                                           /*즉시사용쿠폰금액*/
+		     , ODIH.GOODS_CPN_DC_AMT                                                      /*상품쿠폰사용금액*/
+		     , ODIH.CART_CPN_DC_AMT                                                       /*주문서쿠폰사용금액*/
+		     , ODIH.PNT_DC_AMT                                                            /*포인트사용금액*/
+		     , ODIH.TMTB_DC_AMT                                                           /*다다익선할인금액*/
+		     , ODIH.SELF_TMTB_DC_AMT                                                      /*자사다다익선분담액*/
+		     , ODIH.SUPPLY_COMP_TMTB_DC_AMT                                               /*입점다다익선분담액*/
+		     , ODIH.GFCD_USE_AMT                                                          /*상품권사용금액*/
+		     , ODIH.SELF_CPN_DC_AMT                                                       /*자사쿠폰분담액*/
+		     , ODIH.SUPPLY_COMP_CPN_DC_AMT                                                /*입점쿠폰분담액*/
+		     , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
+		            ELSE
+		                (ODIH.SELL_AMT
+		                 - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT )
+		                 - ODIH.TMTB_DC_AMT
+		                ) / ODIH.SELL_QTY
+		       END                                              AS REAL_SELL_PRICE        /*실판매가 /주문서쿠폰제외*/
+		     , ODIH.SELL_AMT
+		       - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT )
+		       - ODIH.TMTB_DC_AMT                               AS REAL_SELL_AMT          /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함) /주문서쿠폰제외*/
+		     , ODIH.SELL_FEE_RATE                                                         /*판매수수료율*/
+		     , ROUND(ODIH.SELL_AMT * (ODIH.SELL_FEE_RATE / 100),0)          AS SELL_FEE_AMT           /*수수료*/
+		     , ODIH.MD_NM                                                                 /*담당MD*/
+		FROM   (
+		        SELECT ODIH.ORD_DTL_ITEM_HST_SQ                                                                                    /*주문상세단품이력일련번호*/
+		             , ODIH.ORD_NO                                                                                                 /*주문번호*/
+		             , ODIH.ORD_DTL_NO                                                                                             /*주문상세번호*/
+		             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN '판매'
+		                    WHEN ODIH.ORD_DTL_STAT = 'G720_30' THEN '취소'
+		                    WHEN ODIH.ORD_DTL_STAT = 'G720_40' THEN '품절취소'
+		                    WHEN ODIH.ORD_DTL_STAT = 'G720_50' THEN '반품'
+		                    WHEN ODIH.ORD_DTL_STAT = 'G720_60' THEN '교환'
+		               END                                                                              AS SELL_GB                 /*판매구분*/
+		             , O.MALL_GB                                                                                                   /*몰구분*/
+		             , FN_GET_CODE_NM('G011',O.MALL_GB)                                                 AS MALL_GB_NM              /*몰구분명*/
+		             , OD.EXTMALL_ORDER_ID                                                                                         /*제휴몰주문번호*/
+		             , OD.EXTMALL_ID                                                                                               /*제휴몰ID*/
+		             , E.EXTMALL_NM                                                                                                /*제휴몰명*/
+		             , OD.AF_LINK_CD                                                                                               /*제휴링크코드*/
+		             , AL.AF_LINK_NM                                                                                               /*제휴링크명*/
+		             , AL.AF_CHANNEL                                                                                               /*제휴채널코드*/
+		             , FN_GET_CODE_NM('G053',AL.AF_CHANNEL)                                             AS AF_CHANNEL_NM           /*제휴채널명*/
+		             , SC.DISTRIBUTION_GB                                                                                          /*유통구분*/
+		             , FN_GET_CODE_NM('G065',SC.DISTRIBUTION_GB)                                        AS DISTRIBUTION_GB_NM      /*유통구분명*/
+		             , OD.SUPPLY_COMP_CD                                                                                           /*공급업체코드*/
+		             , SC.SUPPLY_COMP_NM                                                                                           /*공급업체명*/
+		             , SC.SUPPLY_VENDOR_CD                                                                                         /*공급벤더코드*/
+		             , SV.SUPPLY_VENDOR_NM                                                                                         /*공급벤더명*/
+		             , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S')                                        AS ORD_DT                  /*주문일시*/
+		             , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S')                                     AS OCCUR_DT                /*발생일시*/
+		             , G.BRAND_CD                                                                                                  /*브랜드코드*/
+		             , B.BRAND_ENM                                                                                                 /*브랜드명*/
+		             , OD.GOODS_CD                                                                                                 /*상품코드*/
+		             , G.GOODS_NM                                                                                                  /*상품명*/
+		             , ODIH.ITEM_CD                                                                                                /*단품코드*/
+		             , ODIH.OPT_CD1                                                                                                /*옵션코드1*/
+		             , ODIH.OPT_CD2                                                                                                /*옵션코드2*/
+		             , G.ITEMKIND_CD                                                                                               /*품목코드*/
+		             , I.ITEMKIND_NM                                                                                               /*품목명*/
+		             , ODIH.ITEM_PRICE                                                                  AS MALL_PRICE              /*몰판매가*/
+		             , CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+		                        IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+		                    ELSE
+		                        ODIH.ITEM_PRICE
+		               END                                                                              AS SELL_PRICE              /*판매가(제휴몰정산가적용)*/
+		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN 1 ELSE -1 END)
+		               *
+		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10'/*판매-결제완료*/ THEN
+		                             ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
+		                         ELSE /*환입-반품완료,환입-교환완료*/
+		                             ODIH.CNCL_RTN_QTY
+		                    END AS SIGNED INT)                                                          AS SELL_QTY                /*판매수량*/
+		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN 1 ELSE -1 END)
+		               *
+		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10'/*판매-결제완료*/ THEN
+		                             ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+		                                                                             IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+		                                                                         ELSE
+		                                                                             ODIH.ITEM_PRICE
+		                                                                    END))
+		                         ELSE /*환입-반품완료,환입-교환완료*/
+		                             (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+		                                                            IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+		                                                        ELSE
+		                                                            ODIH.ITEM_PRICE
+		                                                   END))
+		                    END AS SIGNED INT)                                                          AS SELL_AMT                /*판매금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.CPN1_DC_AMT                        AS CPN1_DC_AMT             /*즉시사용쿠폰금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * CASE WHEN CC2.CPN_ID in (59,132) THEN 0 ELSE ODIH.GOODS_CPN_DC_AMT END                   AS GOODS_CPN_DC_AMT        /*상품쿠폰사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.CART_CPN_DC_AMT                    AS CART_CPN_DC_AMT         /*주문서쿠폰사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.PNT_DC_AMT                         AS PNT_DC_AMT              /*포인트사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT             /*다다익선할인금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
+		               (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
+		                 + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT)          AS SELF_TMTB_DC_AMT        /*자사다다익선분담액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
+		               ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
+		                + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT)                   AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) * ODIH.GFCD_USE_AMT                       AS GFCD_USE_AMT            /*상품권사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
+		               (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
+		                 + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * CASE WHEN CC2.CPN_ID in (59,132) THEN 0 ELSE ODIH.GOODS_CPN_DC_AMT END )            AS SELF_CPN_DC_AMT         /*자사쿠폰분담액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_10',1,-1) *
+		               ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
+		                + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT)                     AS SUPPLY_COMP_CPN_DC_AMT  /*입점쿠폰분담액*/
+		             , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
+		                        OD.SELL_FEE_RATE
+		                    ELSE /*제휴몰*/
+		                        IFNULL(E.SELL_FEE_RATE,0)
+		               END                                                                              AS SELL_FEE_RATE           /*판매수수료율*/
+		             , (SELECT U.USER_NM
+		                FROM   TB_BRAND_MD BM
+		                     , TB_USER U
+		                WHERE  BM.MD_NO = U.USER_NO
+		                AND    BM.BRAND_CD = G.BRAND_CD
+		                AND    BM.FORMAL_GB = G.FORMAL_GB
+		                LIMIT 1)                                                                        AS MD_NM                   /*담당MD*/
+		        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
+		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
+		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
+		        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+		        INNER JOIN TB_SUPPLY_VENDOR SV ON SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
+		        INNER JOIN TB_GOODS G ON OD.GOODS_CD = G.GOODS_CD
+		        INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		        INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
+		        LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
+		        LEFT OUTER JOIN TB_AF_LINK AL ON OD.AF_LINK_CD = AL.AF_LINK_CD
+		        LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
+		                                            AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
+		        LEFT OUTER JOIN TB_CUST_COUPON CC2 ON OD.GOODS_CPN_SQ = CC2.CUST_CPN_SQ
+		        LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON CC2.CPN_ID = CB2.CPN_ID
+		                                            AND OD.SUPPLY_COMP_CD = CB2.SUPPLY_COMP_CD
+		        LEFT OUTER JOIN TB_CUST_COUPON CC3 ON OD.CART_CPN_SQ = CC3.CUST_CPN_SQ
+		        LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON CC3.CPN_ID = CB3.CPN_ID
+		                                            AND OD.SUPPLY_COMP_CD = CB3.SUPPLY_COMP_CD
+		        LEFT OUTER JOIN TB_TMTB_BURDEN TB1 ON OD.TMTB1_SQ = TB1.TMTB_SQ
+		                                          AND OD.SUPPLY_COMP_CD = TB1.TMTB_SUPPLY_CD
+		        LEFT OUTER JOIN TB_TMTB_BURDEN TB2 ON OD.TMTB2_SQ = TB2.TMTB_SQ
+		                                          AND OD.SUPPLY_COMP_CD = TB2.TMTB_SUPPLY_CD
+		        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
+		        WHERE  1 = 1
+		        AND    ODIH.REG_DT <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
+		        AND    ODIH.REG_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
+		        AND    ODIH.ORD_DTL_STAT IN ('G720_10','G720_30','G720_40','G720_50','G720_60') /*판매-결제완료,환입-취소완료,환입-품절취소,환입-반품완료,환입-교환완료*/
+		       ) ODIH
+		ORDER  BY ODIH.ORD_DTL_ITEM_HST_SQ
+	</select>
+
+	<!-- 일자별주문 목록 -->
+	<select id="getDailyOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getDailyOrderList */
+		SELECT SUM(SOD.SELF_AMT + SOD.CHANNEL_AMT + SOD.EXTMALL_AMT) AS TOT_ORD_AMT     /*매출액*/
+		     , IFNULL((SELECT SUM(SELF_AMT + CHANNEL_AMT + EXTMALL_AMT)
+		               FROM   TB_STAT_ORD_DAY
+		               WHERE  1 = 1
+		               AND    DAY <![CDATA[>=]]> DATE_ADD(STR_TO_DATE(#{startDt},'%Y-%m-%d'), INTERVAL -1 YEAR)
+		               AND    DAY <![CDATA[<]]> DATE_ADD(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), INTERVAL -1 YEAR)
+		               AND    (
+		                       1 = 1
+		               <if test='frontGbP != null and frontGbP != ""'>
+		                       OR FRONT_GB = 'P'
+		               </if>
+		               <if test='frontGbM != null and frontGbM != ""'>
+		                       OR FRONT_GB = 'M'
+		               </if>
+		               <if test='frontGbA != null and frontGbA != ""'>
+		                       OR FRONT_GB = 'A'
+		               </if>
+		                      )
+		               <if test='mallGb != null and mallGb != ""'>
+		               AND    IFNULL(EXTMALL_ID,'') != '' /*제휴몰만*/
+		                   <if test='multiExtmallId != null and multiExtmallId != ""'>
+		               AND    EXTMALL_ID IN
+		                       <foreach collection="multiExtmallId" item="item" index="index"  open="(" close=")" separator=",">
+		                       #{item}
+		                       </foreach>
+		                   </if>
+		               </if>
+		               AND    (
+		                       1 = 1
+		               <if test='distributionGbWms != null and distributionGbWms != ""'>
+		                       OR DISTRIBUTION_GB = 'WMS'
+		               </if>
+		               <if test='distributionGbScm != null and distributionGbScm != ""'>
+		                       OR DISTRIBUTION_GB = 'SCM'
+		               </if>
+		                      )
+		               <if test='multiSupplyCompCd != null and multiSupplyCompCd != ""'>
+		               AND    SUPPLY_COMP_CD IN
+		                      <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
+		                      #{item}
+		                      </foreach>
+		               </if>
+		               <if test='multiAfLinkCd != null and multiAfLinkCd != ""'>
+		               AND    AF_LINK_CD IN
+		                      <foreach collection="multiAfLinkCd" item="item" index="index"  open="(" close=")" separator=",">
+		                      #{item}
+		                      </foreach>
+		               </if>
+		               <if test='multiBrandCd != null and multiBrandCd != ""'>
+		               AND    BRAND_CD IN
+		                      <foreach collection="multiBrandCd" item="item" index="index"  open="(" close=")" separator=",">
+		                      #{item}
+		                      </foreach>
+		               </if>
+		               <if test='multiItemkindCd != null and multiItemkindCd != ""'>
+		               AND    ITEMKIND_CD IN
+		                      <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
+		                      #{item}
+		                      </foreach>
+		               </if>
+		              ),0)                                           AS YOY_TOT_ORD_AMT /*전년동기대비매출액*/
+		     , SUM(SOD.SELF_AMT)                                     AS SELF_AMT        /*자사직방문매출액*/
+		     , SUM(SOD.CHANNEL_AMT)                                  AS CHANNEL_AMT     /*채널매출액*/
+		     , SUM(SOD.EXTMALL_AMT)                                  AS EXTMALL_AMT     /*제휴몰매출액*/
+		     , SUM(SOD.CNCL_AMT + SOD.RTN_AMT)                       AS CNCL_AMT        /*취/반품액*/
+		     , SUM(SOD.ORD_CNT)                                      AS ORD_CNT         /*주문건수*/
+		     , SUM(SOD.SELL_QTY)                                     AS SELL_QTY        /*판매수량*/
+		     , SUM(SOD.CNCL_QTY + SOD.RTN_QTY)                       AS CNCL_QTY        /*취/반품수량*/
+		     <choose>
+		         <when test='dayGb == "W"'> <!-- 주별 -->
+		     , CONCAT(MONTH(SOD.DAY), '월 ', WEEK(SOD.DAY,5) - WEEK(DATE_SUB(SOD.DAY, INTERVAL DAYOFMONTH(SOD.DAY) - 1 DAY), 5) + 1, '주') AS DAY
+		         </when>
+		         <when test='dayGb == "M"'> <!-- 월별 -->
+		     , DATE_FORMAT(SOD.DAY,'%Y-%m')                          AS DAY
+		         </when>
+		         <otherwise> <!-- 일별 -->
+		     , DATE_FORMAT(SOD.DAY,'%Y-%m-%d')                       AS DAY
+		         </otherwise>
+		     </choose>
+		FROM   TB_STAT_ORD_DAY SOD
+		WHERE  1 = 1
+		AND    SOD.DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
+		AND    SOD.DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
+		AND    (
+		        1 = 1
+		<if test='frontGbP != null and frontGbP != ""'>
+		        OR SOD.FRONT_GB = 'P'
+		</if>
+		<if test='frontGbM != null and frontGbM != ""'>
+		        OR SOD.FRONT_GB = 'M'
+		</if>
+		<if test='frontGbA != null and frontGbA != ""'>
+		        OR SOD.FRONT_GB = 'A'
+		</if>
+		       )
+		<if test='mallGb != null and mallGb != ""'>
+		AND    IFNULL(SOD.EXTMALL_ID,'') != '' /*제휴몰만*/
+		    <if test='multiExtmallId != null and multiExtmallId != ""'>
+		AND    SOD.EXTMALL_ID IN
+		        <foreach collection="multiExtmallId" item="item" index="index"  open="(" close=")" separator=",">
+		        #{item}
+		        </foreach>
+		    </if>
+		</if>
+		AND    (
+		        1 = 1
+		<if test='distributionGbWms != null and distributionGbWms != ""'>
+		        OR SOD.DISTRIBUTION_GB = 'WMS'
+		</if>
+		<if test='distributionGbScm != null and distributionGbScm != ""'>
+		        OR SOD.DISTRIBUTION_GB = 'SCM'
+		</if>
+		       )
+		<if test='multiSupplyCompCd != null and multiSupplyCompCd != ""'>
+		AND    SOD.SUPPLY_COMP_CD IN
+		       <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
+		       #{item}
+		       </foreach>
+		</if>
+		<if test='multiAfLinkCd != null and multiAfLinkCd != ""'>
+		AND    SOD.AF_LINK_CD IN
+		       <foreach collection="multiAfLinkCd" item="item" index="index"  open="(" close=")" separator=",">
+		       #{item}
+		       </foreach>
+		</if>
+		<if test='multiBrandCd != null and multiBrandCd != ""'>
+		AND    SOD.BRAND_CD IN
+		       <foreach collection="multiBrandCd" item="item" index="index"  open="(" close=")" separator=",">
+		       #{item}
+		       </foreach>
+		</if>
+		<if test='multiItemkindCd != null and multiItemkindCd != ""'>
+		AND    SOD.ITEMKIND_CD IN
+		       <foreach collection="multiItemkindCd" item="item" index="index"  open="(" close=")" separator=",">
+		       #{item}
+		       </foreach>
+		</if>
+		<choose>
+		         <when test='dayGb == "W"'> <!-- 주별 -->
+		GROUP  BY CONCAT(MONTH(SOD.DAY), '월 ', WEEK(SOD.DAY,5) - WEEK(DATE_SUB(SOD.DAY, INTERVAL DAYOFMONTH(SOD.DAY) - 1 DAY), 5) + 1, '주')
+		         </when>
+		         <when test='dayGb == "M"'> <!-- 월별 -->
+		GROUP  BY DATE_FORMAT(SOD.DAY,'%Y-%m')
+		         </when>
+		         <otherwise> <!-- 일별 -->
+		GROUP  BY DATE_FORMAT(SOD.DAY,'%Y-%m-%d')
+		         </otherwise>
+		     </choose>
+	</select>
+
+	<!-- 상품별 주문 목록 -->
+	<select id="getGoodsOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getGoodsOrderList */
+		SELECT
+		    FN_GET_CODE_NM('G009',A.FORMAL_GB) AS FORMAL_GB -- 정상이월구분
+		    , A.GOODS_CD                                    -- 상품코드
+		    , B.GOODS_NM                                    -- 상품명
+		    , 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           -- 장바구니쿠폰
+		    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY       -- 취/환불수량
+		    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT       -- 취/환불액
+		    , SUM(A.SAVE_PNT_AMT) AS SAVE_PNT_AMT           -- 지급포인트
+		FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_GOODS_STOCK C
+		WHERE A.GOODS_CD = B.GOODS_CD
+		    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)
+		]]>
+		<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="multiDistributionGb != null">
+			/* 물류구분 */
+			<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiAfLinkCd != null">
+			/* 채널 */
+			<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiGoodsCd != null">
+			/* 상품코드 */
+			<foreach collection="multiGoodsCd" item="item" index="index"  open="AND (" close=")" separator="OR">A.GOODS_CD LIKE CONCAT('%', #{item}, '%')</foreach>
+		</if>
+		<if test="multiFormalGb != null">
+			/* 정상/이월구분 */
+			<foreach collection="multiFormalGb" item="item" index="index"  open="AND B.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		GROUP BY A.FORMAL_GB, A.GOODS_CD, B.GOODS_NM, B.SELF_GOODS_YN
+		ORDER BY B.SELF_GOODS_YN DESC, A.FORMAL_GB, A.GOODS_CD
+	</select>
+
+	<!-- 제휴몰 주문 목록 조회 -->
+	<select id="getExtmallOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getExtmallOrderList */
+		SELECT EXTMALL_NM
+		     , TOT_AMT
+		     , SELL_QTY
+		     , EXTMALL_AMT
+		     , CNCL_QTY
+		     , CNCL_AMT
+		     , REAL_ORD_AMT
+		     , SELL_FEE_RATE
+		     , EX_USAC_AMT
+		     , YOY_TOT_ORD_AMT
+			 , 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
+				    , SUM(A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /* 총매출 */
+				    , SUM(A.SELL_QTY) AS SELL_QTY             /* 판매수량 */
+				    , SUM(A.EXTMALL_AMT) AS EXTMALL_AMT
+				    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY /*취/반품수량*/
+				    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT /*취/반품액*/
+				    , SUM(A.REAL_ORD_AMT) AS REAL_ORD_AMT     /*실결제액 */
+				    , (SELECT SELL_FEE_RATE FROM TB_EXTMALL X WHERE X.EXTMALL_ID = A.EXTMALL_ID LIMIT 1) AS SELL_FEE_RATE /*수수료율*/
+				    , (SUM(A.REAL_ORD_AMT) * (1 - (SELECT SELL_FEE_RATE FROM TB_EXTMALL X WHERE X.EXTMALL_ID = A.EXTMALL_ID LIMIT 1) / 100)) AS EX_USAC_AMT
+					, IFNULL((SELECT SUM(X.EXTMALL_AMT - X.CNCL_AMT - X.RTN_AMT)
+				               FROM   TB_STAT_ORD_DAY X
+				               WHERE  1 = 1
+				                 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(DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY), 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>
+				              ),0)                                           AS YOY_TOT_ORD_AMT /*전년동기대비매출액*/
+				FROM TB_STAT_ORD_DAY A
+				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)
+				]]>
+				<if test="multiBrandCd != null">
+					/* 브랜드 */
+					<foreach collection="multiBrandCd" item="item" index="index"  open="AND A.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiFormalGb != null">
+					/* 정상/이월구분 */
+					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB 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="multiAfLinkCd != null">
+					/* 채널 */
+					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiItemkindCd != null">
+					/* 품목 */
+					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiFrontGb != null">
+					/* 디바이스 */
+					<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiDistributionGb != null">
+					/* 물류구분 */
+					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				GROUP BY A.EXTMALL_ID
+	) TAB
+	ORDER BY TAB.EXTMALL_NM
+	</select>
+
+	<!-- 채널 주문목록 조회 -->
+	<select id="getChannelOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getChannelOrderList */
+		SELECT AF_LINK_CD
+		     , AF_LINK_NM
+		     , CHANNEL_AMT
+		     , TOT_AMT
+		     , SELL_QTY
+		     , CNCL_QTY
+		     , CNCL_AMT
+		     , REAL_ORD_AMT
+		     , SELL_FEE_RATE
+		     , EX_USAC_AMT
+		     , YOY_TOT_ORD_AMT
+	   		 , 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
+				    , B.AF_LINK_NM
+				    , SUM(A.CHANNEL_AMT) AS CHANNEL_AMT
+				    , SUM(A.CHANNEL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /* 총매출 */
+				    , SUM(A.SELL_QTY) AS SELL_QTY  /* 판매수량 */
+				    , SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY /* 취/반품수량 */
+				    , SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT /* 취/반품액 */
+				    , 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
+				    , 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
+				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)
+				]]>
+				<if test="multiFrontGb != null">
+					/* 디바이스 */
+					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiFormalGb != null">
+					/* 정상/이월구분 */
+					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiDistributionGb != null">
+					/* 물류구분 */
+					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
+					/* 품목 */
+					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				GROUP BY AF_LINK_CD
+	) TAB
+	ORDER BY AF_LINK_NM
+	</select>
+
+	<!-- 브랜드 주문목록 조회 -->
+	<select id="getBrandOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getBrandOrderList */
+		WITH YOY AS (
+		  SELECT X.BRAND_CD, SUM(X.SELF_AMT + X.CHANNEL_AMT + 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(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>
+			<if test="multiExtmallId != null">
+				/* 제휴몰 */
+				<foreach collection="multiExtmallId" item="item" index="index"  open="AND X.EXTMALL_ID 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="multiBrandCd != null">
+				/* 브랜드 */
+				<foreach collection="multiBrandCd" item="item" index="index"  open="AND Y.BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+			</if>
+		  GROUP BY X.BRAND_CD
+		)
+		SELECT
+		    BRAND_CD /*브랜드코드*/
+		    , BRAND_ENM /*브랜드명*/
+		    , TOT_AMT /*총매출*/
+		    , SELL_QTY /*판매수량*/
+		    , SELFMALL_AMT /*자사몰매출*/
+		    , EXTMALL_AMT /*제휴몰매출*/
+		    , CNCL_AMT /*취/반품액*/
+		    , TOT_AMT_10 /*정상매출*/
+		    , TOT_AMT_20 /*이월매출*/
+		    , ROUND( ((FLOOR(TOT_AMT_10 / TOT_AMT * 10000 / 10)) / 10), 1) AS AMT_RATE_10 /*정상비*/
+		    , 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
+		        BRAND_CD
+		        , BRAND_ENM
+		        , SELF_YN
+		        , SUM(TOT_AMT) AS TOT_AMT
+		        , SUM(SELL_QTY) AS SELL_QTY
+		        , SUM(SELFMALL_AMT) AS SELFMALL_AMT
+		        , SUM(EXTMALL_AMT) AS EXTMALL_AMT
+		        , SUM(CNCL_AMT) AS CNCL_AMT
+		        , SUM(CASE WHEN FORMAL_GB = 'G009_10' THEN TOT_AMT ELSE 0 END) AS TOT_AMT_10 /*정상매출*/
+		        , SUM(CASE WHEN FORMAL_GB = 'G009_20' THEN TOT_AMT ELSE 0 END) AS TOT_AMT_20 /*이월매출*/
+		        , YOY_TOT_ORD_AMT
+		    FROM (
+		        SELECT
+		            A.BRAND_CD -- 브랜드코드
+		            , B.BRAND_ENM -- 브랜드명
+		            , B.SELF_YN -- 자사여부
+		            , A.FORMAL_GB -- 정상이월구분
+		            , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT -- 총매출
+		            , SUM(A.SELL_QTY) AS SELL_QTY -- 판매수량
+		            , SUM(A.SELF_AMT + A.CHANNEL_AMT) AS SELFMALL_AMT -- 자사몰매출
+		            , 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 LEFT OUTER JOIN YOY C ON A.BRAND_CD = C.BRAND_CD, TB_BRAND B
+		        WHERE A.BRAND_CD = B.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)
+				]]>
+				<if test="multiFrontGb != null">
+					/* 디바이스 */
+					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiFormalGb != null">
+					/* 정상/이월구분 */
+					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiDistributionGb != null">
+					/* 물류구분 */
+					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
+					/* 품목 */
+					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
+					/* 채널 */
+					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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.BRAND_CD, B.BRAND_ENM, B.SELF_YN, A.FORMAL_GB
+		    ) X
+		    GROUP BY BRAND_CD, BRAND_ENM, SELF_YN
+		) Z
+		ORDER BY SELF_YN DESC, BRAND_ENM
+	</select>
+
+	<!-- 시간별 주문 조회 -->
+	<select id="getHourlyOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getHourlyOrderList */
+		WITH TAB AS (
+		    SELECT
+		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
+		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
+		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
+		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
+		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
+		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
+		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
+		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
+		    FROM TB_STAT_ORD_TIME A
+		    WHERE 1=1
+		    	<if test="dtGb != null">
+					<foreach collection="dtGb" item="item" index="index">
+						<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')) - 1 DAY)
+					        AND A.DAY_TIME < DATE_FORMAT(#{startDt}, '%Y%m%d')
+					        ]]>
+						</if>
+						<if test="item == 'YOY'">
+					        <![CDATA[
+					        /* 전년비교 */
+					        AND A.DAY_TIME >= DATE_ADD(DATE_FORMAT(#{startDt}, '%Y%m%d'), INTERVAL -1 YEAR )
+					        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="multiFrontGb != null">
+					/* 디바이스 */
+					<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiFormalGb != null">
+					/* 정상/이월구분 */
+					<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+				</if>
+				<if test="multiDistributionGb != null">
+					/* 물류구분 */
+					<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
+					/* 품목 */
+					<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
+					/* 채널 */
+					<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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>
+		        AND A.SHOT_DELV_YN = 'Y' /*총알배송*/
+		    GROUP BY HOUR
+		)
+		SELECT
+		    A.HOUR
+		    , A.ORD_AMT /*매출*/
+		    , B.ORD_AMT AS COMP_ORD_AMT /*비교*/
+		    , 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 /*판매수*/
+		    , A.CUST_PRICE /*객단가*/
+		    , A.CNCL_QTY /*취반품개수*/
+		    , A.CNCL_AMT /*취반품액*/
+		FROM (
+		    SELECT
+		        DATE_FORMAT(DAY_TIME, '%H') AS HOUR
+		        , SUM(ORD_AMT) AS ORD_AMT /*매출*/
+		        , SUM(ORD_CUST) AS ORD_CUST /*주문자수*/
+		        , SUM(ORD_CNT) AS ORD_CNT /*주문수*/
+		        , SUM(SELL_QTY) AS SELL_QTY /*판매수*/
+		        , FLOOR(AVG(CUST_PRICE)) AS CUST_PRICE /*객단가*/
+		        , SUM(CNCL_QTY) AS CNCL_QTY /*취반품개수*/
+		        , SUM(CNCL_AMT) AS CNCL_AMT /*취반품액*/
+		    FROM TB_STAT_ORD_TIME A
+		    WHERE 1=1
+		    <![CDATA[
+		    AND A.DAY_TIME >= DATE_FORMAT(#{startDt}, '%Y%m%d')
+		    AND A.DAY_TIME < 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="multiFormalGb != null">
+				/* 정상/이월구분 */
+				<foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+			</if>
+			<if test="multiDistributionGb != null">
+				/* 물류구분 */
+				<foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB 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="multiItemkindCd != null">
+				/* 품목 */
+				<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD 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="multiAfLinkCd != null">
+				/* 채널 */
+				<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_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 HOUR
+		) A
+		LEFT OUTER JOIN TAB B ON A.HOUR = B.HOUR
+		ORDER BY A.HOUR
+	</select>
+
+	<!-- 카테고리별 주문 조회 -->
+	<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 -- 소분류
+			, (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.SELFMALL_AMT + A.EXTMALL_AMT) > 0
+	</select>
+
+	<!-- 카테고리 상세 조회 -->
+	<select id="getCategoryOrderDetailList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getCategoryOrderDetailList */
+		SELECT
+		    C.BRAND_ENM
+		    , A.GOODS_CD
+		    , B.GOODS_NM
+		    , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /*총매출*/
+		    , SUM(A.SELL_QTY) AS SELL_QTY /*판매수량*/
+		    , SUM(A.ORD_CUST) AS ORD_CUST /*구매자수*/
+		FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C
+		WHERE A.GOODS_CD = B.GOODS_CD
+		    AND A.BRAND_CD = C.BRAND_CD
+		    AND (A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) > 0
+		    AND A.ITEMKIND_CD = #{itemkindCd}
+	        <![CDATA[
+	        /* 직접선택 */
+	        AND A.DAY >= DATE_FORMAT(#{startDt}, '%Y%m%d')
+	        AND A.DAY <  DATE_ADD(DATE_FORMAT(#{endDt}, '%Y%m%d'), INTERVAL 1 DAY)
+	        ]]>
+		GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM
+	</select>
+
+	<!-- 클래임 주문조회 -->
+	<select id="getClaimOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getClaimOrderList */
+		SELECT
+		    DATE_FORMAT(DAY, '%m-%d') AS DAY
+		    , SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) AS CLM_AMT /*클레임액*/
+		    , SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) AS CLM_QTY /*클레임수*/
+		    , ROUND(FLOOR(SUM(A.CNCL_AMT + A.RTN_AMT + A.CHG_DELV_FEE) / SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT) * 100 * 10) / 10, 1) AS AMT_RATE
+		    , ROUND(FLOOR(SUM(A.CNCL_QTY + A.RTN_QTY + A.CHG_QTY) / SUM(A.SELL_QTY) * 100 * 10) / 10, 1) AS CLM_RATE
+		    , SUM(A.CNCL_QTY) AS CNCL_QTY /*취소수*/
+		    , SUM(A.CNCL_AMT) AS CNCL_AMT /*취소액*/
+		    , SUM(A.RTN_QTY) AS RTN_QTY /*반품수*/
+		    , SUM(A.RTN_AMT) AS RTN_AMT /*반품액*/
+		    , SUM(A.CHG_QTY) AS CHG_QTY /*교환수*/
+		    , SUM(A.CHG_DELV_FEE) AS CHG_DELV_FEE /*교환배송비*/
+		FROM TB_STAT_ORD_DAY A
+		WHERE 1=1
+	        <![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>
+			<if test="multiItemkindCd != null">
+				/* 품목 */
+				<foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+			</if>
+			<if test="multiAfLinkCd != null">
+				/* 채널 */
+				<foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
+			</if>
+		GROUP BY DATE_FORMAT(DAY, '%m-%d')
+	</select>
+
+	<!-- 베스트 상품 조회 -->
+	<sql id="getBestOrderListSql">
+        /* TsaStatistics.getBestOrderList */
+        SELECT
+            (SELECT SUBSTRING_INDEX(SYS_IMG_NM , '/', 2) FROM TB_GOODS_IMG X WHERE X.GOODS_CD = B.GOODS_CD AND X.DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM /*상품이미지*/
+            , C.BRAND_ENM /*브랜드명*/
+            , A.GOODS_CD /*상품코드*/
+            , B.GOODS_NM /*상품명*/
+            , CASE WHEN A.DISTRIBUTION_GB = 'WMS' THEN '위탁' ELSE '입점' END AS DISTRIBUTION_GB /*구분*/
+            , B.CURR_PRICE /*판매가*/
+            , SUM(A.SELL_QTY - A.CNCL_QTY - A.RTN_QTY) AS SELL_QTY /*판매수*/
+            , SUM(A.SELF_AMT + A.CHANNEL_AMT + A.EXTMALL_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_AMT /*매출액*/
+            , SUM(D.STOCK_QTY) AS STOCK_QTY /*현재고수량*/
+        FROM TB_STAT_ORD_DAY A, TB_GOODS B, TB_BRAND C, TB_GOODS_STOCK D
+        WHERE A.GOODS_CD = B.GOODS_CD
+            AND A.BRAND_CD = C.BRAND_CD
+            AND A.GOODS_CD = D.GOODS_CD
+            <![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="multiDistributionGb != null">
+                /* 물류구분 */
+                <foreach collection="multiDistributionGb" item="item" index="index"  open="AND A.DISTRIBUTION_GB IN (" close=")" separator=",">#{item}</foreach>
+            </if>
+            <if test="multiFormalGb != null">
+                /* 정상/이월구분 */
+                <foreach collection="multiFormalGb" item="item" index="index"  open="AND A.FORMAL_GB IN (" close=")" separator=",">#{item}</foreach>
+            </if>
+            <if test="multiSexGb != null">
+                /* 성별구분 */
+                <foreach collection="multiSexGb" item="item" index="index"  open="AND A.SEX_GB IN (" close=")" separator=",">#{item}</foreach>
+            </if>
+            <if test="multiAgeGb != null">
+                /* 성별구분 */
+                <foreach collection="multiAgeGb" item="item" index="index"  open="AND A.AGE 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>
+            <if test="multiItemkindCd != null">
+                /* 품목 */
+                <foreach collection="multiItemkindCd" item="item" index="index"  open="AND A.ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+            </if>
+            <if test="multiAfLinkCd != null">
+                /* 채널 */
+                <foreach collection="multiAfLinkCd" item="item" index="index"  open="AND A.AF_LINK_CD IN (" close=")" separator=",">#{item}</foreach>
+            </if>
+        GROUP BY C.BRAND_ENM, A.GOODS_CD, B.GOODS_NM, A.DISTRIBUTION_GB, B.CURR_PRICE
+        ORDER BY TOT_AMT DESC
+	</sql>
+
+	<!-- 베스트 주문조회 -->
+	<select id="getBestOrderList" parameterType="Statistics" resultType="Statistics">
+		<include refid="getBestOrderListSql"></include>
+	</select>
+	<!-- 베스트 주문조회 -->
+	<select id="getBestOrderListMap" parameterType="Statistics" resultType="paramMap">
+		<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
+			, ROUND((USE_CNT / DOWN_CNT) * 100 * 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
+			, ROUND((X.CUST_CPN_CNT / Z.CUST_CNT * 100 * 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
+              <choose>
+				  <when test="applyGbArr != null and applyGbArr != ''">
+					  /* 프로모션유형 */
+					  <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>
+				  </when>
+		    	<otherwise>
+					/* 프로모션유형값없을시 */
+					AND (B.TMTB1_DC_AMT + B.TMTB2_DC_AMT) > 0
+				</otherwise>
+			  </choose>
+		)
+		-- 수량할인
+		, 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
+		      <choose>
+				  <when test="distributionGbS != null and distributionGbS !='' and distributionGbW != null and distributionGbW !=''">
+					  AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12', 'G065_20')
+				  </when>
+				  <when test="distributionGbW != null and distributionGbW !=''">
+					  AND C.DISTRIBUTION_GB IN ('G065_10', 'G065_11', 'G065_12')
+				  </when>
+				  <when test="distributionGbS != null and distributionGbS !=''">
+					  AND C.DISTRIBUTION_GB = 'G065_20'
+				  </when>
+			  </choose>
+		      <if test="multiPlanSq != 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
+		    , ROUND((SUM(CUST_CNT) / (SELECT TOT_CUST_CNT FROM TAB) * 100 * 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
+		      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>
+
+	<!-- 부결제수단별통계 목록 -->
+	<select id="getSubPaymentList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getSubPaymentList */
+		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>
+			, SUM(A.PNT_GIVE) AS PNT_GIVE -- 포인트적립액
+			, SUM(A.PNT_ORD_CNT) AS PNT_ORD_CNT -- 포인트사용주문수
+			, SUM(A.PNT_USE) AS PNT_USE -- 포인트사용액
+			, SUM(A.GIFT_REG_CNT) AS GIFT_REG_CNT -- 상품권등록매수
+			, SUM(A.GIFT_ORD_CNT) AS GIFT_ORD_CNT -- 상품권주문수
+			, SUM(A.GIFT_USE) AS GIFT_USE -- 상품권사용액
+		FROM TB_STAT_SUB_PAY A
+		WHERE 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)
+		<choose>
+			<when test='pointGb != null and pointGb != "" and giftCardGb != null and giftCardGb != ""'>
+				AND OCCUR_GB IN(#{pointGb}, #{giftCardGb})
+			</when>
+			<when test='pointGb != null and pointGb != ""'>
+				AND OCCUR_GB = #{pointGb}
+			</when>
+			<when test='giftCardGb != null and giftCardGb != ""'>
+				AND OCCUR_GB = {giftCardGb}
+			</when>
+		</choose>
+		<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>
+	</select>
+
+	<!-- 포인트잔액 -->
+	<select id="getRemainPoint" resultType="java.lang.Long">
+		/* TsaStatistics.getRemainPoint */
+		SELECT
+			SUM(RM_PNT_AMT) AS RM_PNT_AMT
+		FROM TB_CUST_POINT A
+		WHERE A.EXP_CMP_DT IS NULL
+	</select>
+
+	<!-- 포인트잔액 -->
+	<select id="getRemainGiftCard" resultType="java.lang.Long">
+		/* TsaStatistics.getRemainGiftCard */
+		SELECT
+		SUM(RM_GFCD_AMT) AS RM_GFCD_AMT
+		FROM TB_CUST_GIFTCARD A
+		WHERE DATE_FORMAT(USE_EXP_DATE, '%Y%m%d') &lt; NOW()
+	</select>
+
+	<!-- 가입통계 -->
+	<select id="getCustomerJoinList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getCustomerJoinList */
+		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>
+			, MAX(ALL_CNT) AS ALL_CNT
+			, MAX(REAL_CNT) AS REAL_CNT
+			, MAX(DORM_CNT) AS DORM_CNT
+			, MAX(VIP_CNT) AS VIP_CNT
+			, MAX(GOLD_CNT) AS GOLD_CNT
+			, MAX(SILVER_CNT) AS SILVER_CNT
+			, MAX(BRONZE_CNT) AS BRONZE_CNT
+			, MAX(WELCOME_CNT) AS WELCOME_CNT
+			, SUM(JOIN_CNT) AS JOIN_CNT
+			, SUM(DR_JOIN_CNT) AS DR_JOIN_CNT
+			, SUM(AF_JOIN_CNT) AS AF_JOIN_CNT
+			, SUM(CHG_DORM_CNT) AS CHG_DORM_CNT
+			, SUM(RM_DORM_CNT) AS RM_DORM_CNT
+			, SUM(SECEED_CNT) AS SECEED_CNT
+		FROM TB_STAT_CUST
+		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
+		  AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
+	<if test="multiSexGb != null">
+		/* 성별구분 */
+		<foreach collection="multiSexGb" item="item" index="index"  open="AND SEX_GB IN (" close=")" separator=",">#{item}</foreach>
+	</if>
+	<if test="multiAgeGb != null">
+		/* 연령구분 */
+		<foreach collection="multiAgeGb" item="item" index="index"  open="AND AGE IN (" close=")" separator=",">#{item}</foreach>
+	</if>
+	<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>
+		ORDER BY DAY DESC
+	</select>
+
+	<!-- 등급별주문현황 -->
+	<select id="getCustomerGradOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getCustomerGradOrderList */
+		SELECT
+			CASE WHEN A.CUST_GRADE = 'G110_10' THEN 1
+				WHEN A.CUST_GRADE = 'G110_20' THEN 2
+				WHEN A.CUST_GRADE = 'G110_30' THEN 3
+				WHEN A.CUST_GRADE = 'G110_40' THEN 4
+				WHEN A.CUST_GRADE = 'G110_50' THEN 5
+			ELSE 6 END AS PRIORITY
+			, FN_GET_CODE_NM('G110', A.CUST_GRADE) AS CUST_GRADE
+			, SUM(A.ORD_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_ORD_AMT -- 총매출액
+			, SUM(A.ORD_AMT) AS ORD_AMT -- 매출액
+			, SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT -- 취/반품액
+			, SUM(A.ORD_CNT) AS ORD_CNT -- 주문수
+			, SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY -- 취/반품갯수
+			, ROUND(CEIL(AVG(A.ORD_CNT) * 10) / 10, 1) AS AVG_ORD_CNT -- 평균주문수
+			, ROUND(CEIL(AVG(A.SELL_QTY) * 10) / 10, 1) AS AVG_SELL_QTY -- 평균주문상품개수
+			, FLOOR(SUM(A.ORD_AMT) / SUM(A.ORD_CNT)) AS CUST_PRICE -- 객단가
+		FROM TB_STAT_CUST_ORD A
+		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
+			AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND SEX_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND AGE IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		GROUP BY A.CUST_GRADE
+		ORDER BY PRIORITY
+	</select>
+
+	<!-- 등급별주문현황 -->
+	<select id="getCustomerAgeOrderList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getCustomerAgeOrderList */
+		SELECT
+			CASE WHEN A.AGE != 'X' THEN CONCAT(A.AGE, '대') ELSE '50대이상/기타' END AS AGE
+			, FN_GET_CODE_NM('G007', A.SEX_GB) AS SEX_GB
+			, SUM(A.ORD_AMT - A.CNCL_AMT - A.RTN_AMT) AS TOT_ORD_AMT -- 총매출액
+			, SUM(A.ORD_AMT) AS ORD_AMT -- 매출액
+			, SUM(A.CNCL_AMT + A.RTN_AMT) AS CNCL_AMT -- 취/반품액
+			, SUM(A.ORD_CNT) AS ORD_CNT -- 주문수
+			, SUM(A.CNCL_QTY + A.RTN_QTY) AS CNCL_QTY -- 취/반품갯수
+			, ROUND(CEIL(AVG(A.ORD_CNT) * 10) / 10, 1) AS AVG_ORD_CNT -- 평균주문수
+			, ROUND(CEIL(AVG(A.SELL_QTY) * 10) / 10, 1) AS AVG_SELL_QTY -- 평균주문상품개수
+			, FLOOR(SUM(A.ORD_AMT) / SUM(A.ORD_CNT)) AS CUST_PRICE -- 객단가
+		FROM TB_STAT_CUST_ORD A
+		WHERE DAY <![CDATA[>=]]> STR_TO_DATE(#{startDt},'%Y-%m-%d')
+			AND DAY <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY)
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiGradeGb != null">
+			/* 등급 */
+			<foreach collection="multiGradeGb" item="item" index="index"  open="AND CUST_GRADE IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		GROUP BY A.AGE, A.SEX_GB
+		ORDER BY A.AGE, A.SEX_GB
+	</select>
+
+	<!-- 구매자랭킹 -->
+	<select id="getCustomerRankingList" parameterType="Statistics" resultType="Statistics">
+		/* TsaStatistics.getCustomerRankingList */
+		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
+				, 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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d')                         -- 시작일변수
+				AND A.PAY_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
+				AND E.CUST_NO > 0
+				AND A.MALL_GB = 'G011_10'
+				AND B.ORD_EXCH_GB = 'O'
+				AND B.ORD_DTL_STAT = 'G013_20' -- 결제완료
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND A.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(E.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+			) A
+			WHERE RNK = 1
+		)
+		-- 판매수
+		, TAB_SELL_QTY AS (
+			SELECT
+				SUM(ORD_QTY) AS VAL
+				, '1' AS GBN
+				, CUST_NO
+			FROM TAB
+			GROUP BY CUST_NO
+		)
+		-- 매출
+		, TAB_ORD AS (
+			SELECT
+				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
+				, CUST_NO
+			FROM TAB A
+			GROUP BY CUST_NO
+		)
+		-- 취소갯수
+		, TAB_CNCL_QTY AS (
+			SELECT SUM(CHG_QTY) AS VAL
+				, '3' AS GBN
+				, C.CUST_NO
+			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
+				AND COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
+				AND MALL_GB = 'G011_10'
+				AND G.CUST_NO > 0
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND C.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+			GROUP BY C.CUST_NO
+		)
+		-- 반품갯수
+		, TAB_RTN_QTY AS (
+			SELECT SUM(CHG_QTY) AS VAL
+				, '4' AS GBN
+				, C.CUST_NO
+			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
+				AND COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
+				AND MALL_GB = 'G011_10'
+				AND G.CUST_NO > 0
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND C.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+			GROUP BY C.CUST_NO
+		)
+		-- 취소액
+		, TAB_CNCL_AMT AS (
+			SELECT 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.CUST_NO
+			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
+				AND B.COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
+				AND MALL_GB = 'G011_10'
+				AND G.CUST_NO > 0
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND D.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+			GROUP BY D.CUST_NO
+		)
+		-- 반품액
+		, TAB_RTN_AMT AS (
+			SELECT 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.CUST_NO
+			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 >= STR_TO_DATE(#{startDt},'%Y-%m-%d') -- 시작일변수
+				AND B.COMPLETE_DT <![CDATA[<]]> DATE_ADD(STR_TO_DATE(#{endDt},'%Y-%m-%d'), INTERVAL 1 DAY) -- 종료일변수
+				AND MALL_GB = 'G011_10'
+				AND G.CUST_NO > 0
+		<if test="multiFrontGb != null">
+			/* 디바이스 */
+			<foreach collection="multiFrontGb" item="item" index="index"  open="AND D.FRONT_GB IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiSexGb != null">
+			/* 성별구분 */
+			<foreach collection="multiSexGb" item="item" index="index"  open="AND FN_DEC_AES(G.SEX_GB) IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiAgeGb != null">
+			/* 연령구분 */
+			<foreach collection="multiAgeGb" item="item" index="index"  open="AND 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 IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiBrandCd != null">
+			/* 브랜드 */
+			<foreach collection="multiBrandCd" item="item" index="index"  open="AND BRAND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+		<if test="multiItemkindCd != null">
+			/* 품목 */
+			<foreach collection="multiItemkindCd" item="item" index="index"  open="AND ITEMKIND_CD IN (" close=")" separator=",">#{item}</foreach>
+		</if>
+			GROUP BY D.CUST_NO
+		)
+		-- 주문수
+		, TAB_ORD_CNT AS (
+			SELECT
+				SUM(VAL) AS VAL
+				, '7' AS GBN
+				, CUST_NO
+			FROM (
+				SELECT
+					1 AS VAL
+					, ORD_NO
+					, CUST_NO
+				FROM TAB
+				GROUP BY ORD_NO, CUST_NO
+			) A
+			GROUP BY CUST_NO
+		)
+		SELECT
+			CONCAT(SUBSTRING(CUST_ID, 1, 3), '****', '(', SUBSTRING(FN_DEC_AES(CUST_NM), 1, 1), '**', ')') AS CUST_ID -- 아이디
+			, 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
+		    , X.CUST_NO
+			, FN_GET_CODE_NM('G007', FN_DEC_AES(SEX_GB)) AS SEX_GB
+			, FN_GET_CODE_NM('G110', CUST_GRADE) AS CUST_GRADE -- 등급
+			, SUM(ORD_AMT - CNCL_AMT - RTN_AMT) AS TOT_ORD_AMT -- 매출액
+			, SUM(ORD_CNT) AS ORD_CNT -- 주문수
+			, SUM(SELL_QTY - CNCL_QTY - RTN_QTY) AS SELL_QTY -- 판매수
+			, FLOOR(SUM(ORD_AMT) / SUM(ORD_CNT)) AS CUST_PRICE -- 객단가
+			, IFNULL((SELECT SUM(RM_PNT_AMT) FROM TB_CUST_POINT CP WHERE CP.CUST_NO = X.CUST_NO AND EXP_CMP_DT IS NULL), 0) AS CUST_POINT -- 회원포인트
+		FROM (
+			SELECT
+				CUST_NO
+				, 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 CUST_NO
+		) X, TB_CUSTOMER Y
+		WHERE X.CUST_NO = Y.CUST_NO
+		GROUP BY X.CUST_NO
+		ORDER BY TOT_ORD_AMT DESC
+		LIMIT 50
+	</select>
+
+	<!-- 미로그인현황 -->
+	<select id="getCustomerUnloginList" resultType="Statistics">
+		/* TsaStatistics.getCustomerUnloginList */
+		SELECT
+			X.*
+			, ROUND(CNT_5 / TOT_CNT * 100) AS PER_CNT_5
+			, ROUND(CNT_4 / TOT_CNT * 100) AS PER_CNT_4
+			, ROUND(CNT_3 / TOT_CNT * 100) AS PER_CNT_3
+			, ROUND(CNT_2 / TOT_CNT * 100) AS PER_CNT_2
+			, ROUND(CNT_1 / TOT_CNT * 100) AS PER_CNT_1
+		FROM (
+			SELECT
+				SUM(CASE WHEN GB = 5 THEN CNT ELSE 0 END) AS CNT_5
+				, SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4
+				, SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3
+				, SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2
+				, SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1
+				, SUM(CNT) AS TOT_CNT
+			FROM (
+				-- 1년
+				SELECT COUNT(1) AS CNT
+					, 5 AS GB -- 1년 ~
+				FROM TB_CUSTOMER
+				WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 YEAR ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
+				-- 12개월
+				UNION ALL
+				SELECT COUNT(1) AS CNT
+					, 4 AS GB -- 9개월~12개월
+				FROM TB_CUSTOMER
+				WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 YEAR ), '%Y%m%d%H%i%s')
+					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
+				-- 9개월
+				UNION ALL
+				SELECT COUNT(1) AS CNT
+					, 3 AS GB -- 6개월~9개월
+				FROM TB_CUSTOMER
+				WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
+					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+				-- 6개월
+				UNION ALL
+				SELECT COUNT(1) AS CNT
+					, 2 AS GB -- 3개월~6개월
+				FROM TB_CUSTOMER
+				WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+					AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+				-- 3개월
+				UNION ALL
+				SELECT COUNT(1) AS CNT
+					, 1 AS GB -- ~3개월
+				FROM TB_CUSTOMER
+				WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+					AND LOGIN_LDT &lt; DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
+			) Z
+		) X
+	</select>
+
+	<!-- 미로그인현황 회원리스트 -->
+	<select id="getCustomerUnloginInfoList" parameterType="Statistics" resultType="paramMap">
+		/* TsaStatistics.getCustomerUnloginInfoList */
+		SELECT (
+		        SELECT CASE WHEN ROLE_CD = 'G001_0000'
+		                         THEN A.CUST_ID
+		                    ELSE CONCAT(LEFT(A.CUST_ID, 3), REPEAT('*', CHAR_LENGTH(A.CUST_ID) - 3 ) )
+		               END
+		        FROM   TB_USER
+		        WHERE  USER_NO = #{regNo}
+		       ) AS CUST_ID
+		     , (
+		        SELECT CASE WHEN ROLE_CD = 'G001_0000'
+		                         THEN A.CUST_NM
+		                    ELSE CONCAT(LEFT(A.CUST_NM, 1), REPEAT('*', CHAR_LENGTH(A.CUST_NM) - 1 ) )
+		               END
+		        FROM   TB_USER
+		        WHERE  USER_NO = #{regNo}
+		       ) AS CUST_NM
+		    , (
+		       SELECT CASE WHEN ROLE_CD = 'G001_0000'
+		                        THEN A.CELL_PHNNO
+		                   ELSE CONCAT(substr(A.CELL_PHNNO, 1, 4), '****', substr(A.CELL_PHNNO, 9, 13))
+		              END
+		       FROM   TB_USER
+		       WHERE  USER_NO = #{regNo}
+		      ) AS CELL_PHNNO
+		    , (
+		       SELECT CASE WHEN ROLE_CD = 'G001_0000'
+		                        THEN A.EMAIL
+		                   ELSE CONCAT(LEFT(A.EMAIL, 2), REPEAT('*', instr(A.EMAIL, '@') - 3), SUBSTRING(A.EMAIL, instr(EMAIL, '@'), LENGTH(A.EMAIL)))
+		              END
+		       FROM   TB_USER
+		       WHERE  USER_NO = #{regNo}
+		      ) AS EMAIL
+		    , MONTHS
+		    , BIRTH_YM
+		FROM   (
+		        SELECT CUST_ID
+		             , FN_DEC_AES(CUST_NM)                    AS CUST_NM
+		             , TIMESTAMPDIFF(MONTH, LOGIN_LDT, NOW()) AS MONTHS
+		             , CASE WHEN CELL_PHNNO != 'xx'
+		                         THEN FN_DEC_AES(CELL_PHNNO)
+		                    ELSE CELL_PHNNO
+		               END                                    AS CELL_PHNNO
+		             , FN_DEC_AES(EMAIL)                      AS EMAIL
+		             , SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
+		        FROM   TB_CUSTOMER
+		        WHERE  CUST_NO > 0
+		        AND    CUST_STAT = 'G104_10'
+		        AND    LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), '%Y%m%d%H'), '%Y%m%d%H'), '%Y-%m-%d %H:%i:%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
+		       ) A
+	</select>
+
+	<!-- 마케팅수신동의현황 -->
+	<select id="getCustomerMarketingList" resultType="Statistics">
+		/* TsaStatistics.getCustomerMarketingList */
+		SELECT
+			X.*
+			 , ROUND(CNT_4 / TOT_CNT * 100) AS PER_CNT_4
+			 , ROUND(CNT_3 / TOT_CNT * 100) AS PER_CNT_3
+			 , ROUND(CNT_2 / TOT_CNT * 100) AS PER_CNT_2
+			 , ROUND(CNT_1 / TOT_CNT * 100) AS PER_CNT_1
+		FROM (
+			 SELECT SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4
+				  , SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3
+				  , SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2
+				  , SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1
+				  , SUM(CNT)                                  AS TOT_CNT
+			 FROM (
+				  -- SMS
+				  SELECT COUNT(1) AS CNT
+					   , 4        AS GB
+				  FROM TB_CUSTOMER
+				  WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND SMS_AGREE_YN = 'Y'
+					-- EMAIL
+				  UNION ALL
+				  SELECT COUNT(1) AS CNT
+					   , 3        AS GB
+				  FROM TB_CUSTOMER
+				  WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND EMAIL_AGREE_YN = 'Y'
+					-- 푸쉬
+				  UNION ALL
+				  SELECT COUNT(1) AS CNT
+					   , 2        AS GB
+				  FROM TB_CUSTOMER
+				  WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND APP_AGREE_YN = 'Y'
+					-- 미동의
+				  UNION ALL
+				  SELECT COUNT(1) AS CNT
+					   , 1        AS GB
+				  FROM TB_CUSTOMER
+				  WHERE CUST_NO > 0
+					AND CUST_STAT = 'G104_10'
+					AND SMS_AGREE_YN = 'N'
+					AND EMAIL_AGREE_YN = 'N'
+					AND APP_AGREE_YN = 'N'
+			  ) Z
+		 ) X
+	</select>
+
+	<!-- 휴면전환 잔여일별현황 -->
+	<select id="getCustomerDormRemainList" resultType="Statistics">
+		/* TsaStatistics.getCustomerDormRemainList */
+		SELECT
+			SUM(CASE WHEN GB = 4 THEN CNT ELSE 0 END) AS CNT_4 -- 12개월
+			, SUM(CASE WHEN GB = 3 THEN CNT ELSE 0 END) AS CNT_3 -- 9개월
+			, SUM(CASE WHEN GB = 2 THEN CNT ELSE 0 END) AS CNT_2 -- 6개월
+			, SUM(CASE WHEN GB = 1 THEN CNT ELSE 0 END) AS CNT_1 -- 9개월
+		FROM (
+			-- 12개월
+			SELECT COUNT(1) AS CNT
+				, 4 AS GB -- 12개월
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
+			-- 9개월
+			UNION ALL
+			SELECT COUNT(1) AS CNT
+				, 3 AS GB -- 9개월
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
+			-- 6개월
+			UNION ALL
+			SELECT COUNT(1) AS CNT
+				, 2 AS GB -- 6개월
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+			-- 3개월
+			UNION ALL
+			SELECT COUNT(1) AS CNT
+				, 1 AS GB -- ~3개월
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT &lt; DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+		) Z
+	</select>
+
+	<!-- 휴면전환 잔여일별현황 회원리스트 -->
+	<select id="getCustomerDormRemainInfoList" parameterType="Statistics" resultType="paramMap">
+	/* TsaStatistics.getCustomerDormRemainInfoList */
+		SELECT GB
+			 , BIRTH_YM
+		     , (
+			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
+							     THEN A.CUST_ID
+				   	        ELSE CONCAT(LEFT(A.CUST_ID, 3), REPEAT('*', CHAR_LENGTH(A.CUST_ID) - 3 ) )
+					   END
+			    FROM   TB_USER
+			    WHERE  USER_NO = #{regNo}
+		       ) AS CUST_ID
+			 , (
+			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
+							     THEN A.CUST_NM
+						    ELSE CONCAT(LEFT(A.CUST_NM, 1), REPEAT('*', CHAR_LENGTH(A.CUST_NM) - 1 ) )
+					   END
+			    FROM   TB_USER
+			    WHERE  USER_NO = #{regNo}
+		       ) AS CUST_NM
+			 , (
+			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
+							     THEN A.CELL_PHNNO
+						    ELSE CONCAT(substr(A.CELL_PHNNO, 1, 4), '****', substr(A.CELL_PHNNO, 9, 13))
+					   END
+			    FROM   TB_USER
+			    WHERE  USER_NO = #{regNo}
+		       ) AS CELL_PHNNO
+			 , (
+			    SELECT CASE WHEN ROLE_CD = 'G001_0000'
+							     THEN A.EMAIL
+						    ELSE CONCAT(LEFT(A.EMAIL, 2), REPEAT('*', instr(A.EMAIL, '@') - 3), SUBSTRING(A.EMAIL, instr(EMAIL, '@'), LENGTH(A.EMAIL)))
+					   END
+			    FROM   TB_USER
+			    WHERE  USER_NO = #{regNo}
+		       ) AS EMAIL
+		FROM (
+			-- 12개월
+			SELECT '12개월' AS GB -- 12개월
+				, CUST_ID
+				, FN_DEC_AES(CUST_NM) AS CUST_NM
+				, CASE WHEN CELL_PHNNO != 'xx'
+		                         THEN FN_DEC_AES(CELL_PHNNO)
+					   ELSE CELL_PHNNO
+				  END                                AS CELL_PHNNO
+				, FN_DEC_AES(EMAIL) AS EMAIL
+				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT > DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s') -- now() 수정 : 조회시점의 시간까지만. ex) 2019년9월25일15시 조회 -> 20210925150000
+			-- 9개월
+			UNION ALL
+			SELECT '9개월' AS GB -- 9개월
+				, CUST_ID
+				, FN_DEC_AES(CUST_NM) AS CUST_NM
+				, CASE WHEN CELL_PHNNO != 'xx'
+		                         THEN FN_DEC_AES(CELL_PHNNO)
+					   ELSE CELL_PHNNO
+				  END                                AS CELL_PHNNO
+				, FN_DEC_AES(EMAIL) AS EMAIL
+				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT <![CDATA[ < ]]>  DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -1 DAY ), '%Y%m%d%H%i%s')
+			-- 6개월
+			UNION ALL
+			SELECT '6개월' AS GB -- 6개월
+				, CUST_ID
+				, FN_DEC_AES(CUST_NM) AS CUST_NM
+				, CASE WHEN CELL_PHNNO != 'xx'
+		                         THEN FN_DEC_AES(CELL_PHNNO)
+					   ELSE CELL_PHNNO
+				  END                                AS CELL_PHNNO
+				, FN_DEC_AES(EMAIL) AS EMAIL
+				, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -3 MONTH ), '%Y%m%d%H%i%s')
+			-- 3개월
+			UNION ALL
+			SELECT '3개월' AS GB -- ~3개월
+				, CUST_ID
+				, FN_DEC_AES(CUST_NM) AS CUST_NM
+				, CASE WHEN CELL_PHNNO != 'xx'
+		                         THEN FN_DEC_AES(CELL_PHNNO)
+					   ELSE CELL_PHNNO
+				  END                                AS CELL_PHNNO
+				, FN_DEC_AES(EMAIL) AS EMAIL
+			, SUBSTRING(FN_DEC_AES(BIRTH_YMD), 1, 6) AS BIRTH_YM
+			FROM TB_CUSTOMER
+			WHERE CUST_NO > 0
+				AND CUST_STAT = 'G104_10'
+				AND LOGIN_LDT >= DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -9 MONTH ), '%Y%m%d%H%i%s')
+				AND LOGIN_LDT <![CDATA[ < ]]> DATE_FORMAT(DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(), '%Y%m%d%H'), '%Y%m%d%H'), INTERVAL -6 MONTH ), '%Y%m%d%H%i%s')
+		) A
+	</select>
 </mapper>
 </mapper>