gagamel vor 4 Jahren
Ursprung
Commit
80b2f9f416
1 geänderte Dateien mit 27 neuen und 14 gelöschten Zeilen
  1. 27 14
      산출물/4.구축/데이터처리/매출반영.sql

+ 27 - 14
산출물/4.구축/데이터처리/매출반영.sql

@@ -1,6 +1,6 @@
--- 한세MK 전일자 매출반영 데이터
-TRUNCATE TABLE TB_HANSAE_SALES;
+-- TRUNCATE TABLE TB_HANSAE_SALES;
 
 
+-- 한세MK 전일자 매출반영 데이터
 INSERT INTO TB_HANSAE_SALES (
 INSERT INTO TB_HANSAE_SALES (
        ERP_GB
        ERP_GB
      , DT_SALE
      , DT_SALE
@@ -8,6 +8,7 @@ INSERT INTO TB_HANSAE_SALES (
      , CD_STYLE
      , CD_STYLE
      , CD_COLOR
      , CD_COLOR
      , CD_SIZE
      , CD_SIZE
+     , BRAND_CD
      , QT_SALE
      , QT_SALE
      , AM_ACSALE
      , AM_ACSALE
      , DS_REMARK
      , DS_REMARK
@@ -19,6 +20,7 @@ SELECT 'hsmk'      AS ERP_GB
      , CD_STYLE
      , CD_STYLE
      , CD_COLOR
      , CD_COLOR
      , CD_SIZE
      , CD_SIZE
+     , BRAND_CD
      , QT_SALE
      , QT_SALE
      , AM_ACSALE
      , AM_ACSALE
      , ''          AS DS_REMARK
      , ''          AS DS_REMARK
@@ -31,6 +33,7 @@ FROM   (
              , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
              , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
              , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+             , G.BRAND_CD                                          /*브랜드코드*/
              , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
              , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
                              ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
                              ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
                         END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
                         END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
@@ -51,10 +54,11 @@ FROM   (
         INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
         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_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_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
         LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
         LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
         WHERE  1 = 1
         WHERE  1 = 1
-        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
-        AND    ODIH.REG_DT < CURRENT_DATE()
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) /*전일자기준*/
+        AND    ODIH.REG_DT < CURRENT_DATE() /*전일자기준*/
         AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
         AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
         AND    OD.SUPPLY_COMP_CD = 5 /*한세MK*/
         AND    OD.SUPPLY_COMP_CD = 5 /*한세MK*/
         AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
         AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
@@ -65,6 +69,7 @@ FROM   (
                 , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
                 , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
                 , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+                , G.BRAND_CD
        ) ODIH
        ) ODIH
 WHERE  QT_SALE <> 0
 WHERE  QT_SALE <> 0
 AND    NOT EXISTS (SELECT 1
 AND    NOT EXISTS (SELECT 1
@@ -86,6 +91,7 @@ INSERT INTO TB_HANSAE_SALES (
      , CD_STYLE
      , CD_STYLE
      , CD_COLOR
      , CD_COLOR
      , CD_SIZE
      , CD_SIZE
+     , BRAND_CD
      , QT_SALE
      , QT_SALE
      , AM_ACSALE
      , AM_ACSALE
      , DS_REMARK
      , DS_REMARK
@@ -97,6 +103,7 @@ SELECT 'hsdr'     AS ERP_GB
      , CD_STYLE
      , CD_STYLE
      , CD_COLOR
      , CD_COLOR
      , CD_SIZE
      , CD_SIZE
+     , BRAND_CD
      , QT_SALE
      , QT_SALE
      , AM_ACSALE
      , AM_ACSALE
      , ''         AS DS_REMARK
      , ''         AS DS_REMARK
@@ -109,6 +116,7 @@ FROM   (
              , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
              , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
              , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
              , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+             , G.BRAND_CD                                          /*브랜드코드*/
              , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
              , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
                              ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
                              ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
                         END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
                         END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
@@ -129,10 +137,11 @@ FROM   (
         INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
         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_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_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
         LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
         LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
         WHERE  1 = 1
         WHERE  1 = 1
-        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
-        AND    ODIH.REG_DT < CURRENT_DATE()
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) /*전일자기준*/
+        AND    ODIH.REG_DT < CURRENT_DATE() /*전일자기준*/
         AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
         AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
         AND    OD.SUPPLY_COMP_CD = 3 /*한세드림*/
         AND    OD.SUPPLY_COMP_CD = 3 /*한세드림*/
         AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
         AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
@@ -143,6 +152,7 @@ FROM   (
                 , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
                 , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
                 , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
                 , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+                , G.BRAND_CD
        ) ODIH
        ) ODIH
 WHERE  QT_SALE <> 0
 WHERE  QT_SALE <> 0
 AND    NOT EXISTS (SELECT 1
 AND    NOT EXISTS (SELECT 1
@@ -156,26 +166,29 @@ AND    NOT EXISTS (SELECT 1
                   )
                   )
 ;
 ;
 
 
--- 업체별 매출반영 건수
+-- 업체별 매출반영 건수와 성공건수 조회
 SELECT ERP_GB
 SELECT ERP_GB
-     , COUNT(*) AS CNT
+     , COUNT(*)                                                 AS UPLOAD_CNT
+     , SUM(CASE WHEN LENGTH(CD_SALEBILL) > 0 THEN 1 ELSE 0 END) AS SUCC_CNT
 FROM   TB_HANSAE_SALES
 FROM   TB_HANSAE_SALES
-WHERE  REG_DT >= CURRENT_DATE() /*당일에 등록된 넘*/
-AND    REG_DT < DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+WHERE  DT_SALE = '20210901'
 GROUP  BY ERP_GB
 GROUP  BY ERP_GB
+;
 
 
--- 업체별 매출반영 목록
+-- 위의 UPLOAD_CNT와 SUCC_CNT의 값이 다를 경우 재전송을 위한 데이터 조회
 SELECT ERP_GB
 SELECT ERP_GB
      , DT_SALE
      , DT_SALE
      , TP_SALE
      , TP_SALE
      , CD_STYLE
      , CD_STYLE
      , CD_COLOR
      , CD_COLOR
      , CD_SIZE
      , CD_SIZE
+     , BRAND_CD
      , QT_SALE
      , QT_SALE
      , AM_ACSALE
      , AM_ACSALE
      , DS_REMARK
      , DS_REMARK
+     , CD_SALEBILL /*성공시 값 있음. 판매전표번호*/
+     , DS_ERROR    /*실패오류*/
 FROM   TB_HANSAE_SALES
 FROM   TB_HANSAE_SALES
-WHERE  REG_DT >= CURRENT_DATE() /*당일에 등록된 넘*/
-AND    REG_DT < DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
-ORDER  BY ERP_GB, DT_SALE, TP_SALE, CD_STYLE, CD_COLOR, CD_SIZE
+WHERE  DT_SALE = '20210901'
+AND    DS_ERROR IS NOT NULL /*오류발생건*/
 ;
 ;