정산_상품정산_20210625.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. -- G720_10 판매-결제완료
  2. -- G720_20 판매-배송중
  3. -- G720_30 환입-취소완료
  4. -- G720_40 환입-품절취소
  5. -- G720_50 환입_반품완료
  6. -- G720_60 환입-교환완료
  7. /* TsaSettle.getGoodsSettleList */
  8. SELECT ODIH.ORD_NO /*주문번호*/
  9. , ODIH.ORD_DTL_NO /*주문상세번호*/
  10. , ODIH.MALL_GB /*몰구분*/
  11. , ODIH.MALL_GB_NM /*몰구분명*/
  12. , ODIH.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  13. , ODIH.EXTMALL_ID /*제휴몰ID*/
  14. , ODIH.EXTMALL_NM /*제휴몰명*/
  15. , ODIH.SUPPLY_COMP_CD /*공급업체코드*/
  16. , ODIH.SUPPLY_COMP_NM /*공급업체명*/
  17. , ODIH.DISTRIBUTION_GB /*유통구분*/
  18. , ODIH.DISTRIBUTION_GB_NM /*유통구분명*/
  19. , ODIH.SETTLE_DAY /*정산주기*/
  20. , ODIH.SETTLE_DAY_NM /*정산주기명*/
  21. , ODIH.ORD_DT /*주문일시*/
  22. , ODIH.SETTLE_GB /*정산구분*/
  23. , ODIH.SETTLE_GB_NM /*정산구분명*/
  24. , ODIH.OCCUR_DT /*발생일시*/
  25. , ODIH.GOODS_CD /*상품코드*/
  26. , ODIH.GOODS_NM /*상품명*/
  27. , ODIH.BRAND_CD /*브랜드코드*/
  28. , ODIH.BRAND_ENM /*브랜드명*/
  29. , ODIH.MD_NM /*담당MD*/
  30. , ODIH.ITEM_CD /*단품코드*/
  31. , ODIH.OPT_CD1 /*옵션코드1*/
  32. , ODIH.OPT_CD2 /*옵션코드2*/
  33. , ODIH.SELL_PRICE /*판매가*/
  34. , ODIH.SELL_QTY /*판매수량*/
  35. , ODIH.SELL_AMT /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
  36. , ODIH.CPN1_DC_AMT /*즉시사용쿠폰금액*/
  37. , ODIH.GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  38. , ODIH.CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  39. , ODIH.PNT_DC_AMT /*포인트사용금액*/
  40. , ODIH.TMTB_DC_AMT /*다다익선할인금액*/
  41. , ODIH.GFCD_USE_AMT /*상품권사용금액*/
  42. , ODIH.SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  43. , ODIH.SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  44. , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
  45. ELSE
  46. (ODIH.SELL_AMT
  47. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  48. - ODIH.TMTB_DC_AMT
  49. ) / ODIH.SELL_QTY
  50. END AS REAL_SELL_PRICE /*실판매가*/
  51. , ODIH.SELL_AMT
  52. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  53. - ODIH.TMTB_DC_AMT AS REAL_SELL_AMT /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
  54. , ODIH.SELL_FEE_RATE /*판매수수료율*/
  55. , ROUND((ODIH.SELL_AMT
  56. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  57. - ODIH.TMTB_DC_AMT
  58. ) * (ODIH.SELL_FEE_RATE / 100),0) AS SELL_FEE_AMT /*수수료*/
  59. , (ODIH.SELL_AMT
  60. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  61. - ODIH.TMTB_DC_AMT)
  62. - ROUND((ODIH.SELL_AMT
  63. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  64. - ODIH.TMTB_DC_AMT
  65. ) * (ODIH.SELL_FEE_RATE / 100),0) AS SETTLE_AMT /*정산대상액(실판매금액 - 수수료)*/
  66. FROM (
  67. SELECT ODIH.ORD_DTL_ITEM_HST_SQ /*주문상세단품이력일련번호*/
  68. , ODIH.ORD_NO /*주문번호*/
  69. , ODIH.ORD_DTL_NO /*주문상세번호*/
  70. , O.MALL_GB /*몰구분*/
  71. , FN_GET_CODE_NM('G011',O.MALL_GB) AS MALL_GB_NM /*몰구분명*/
  72. , OD.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  73. , OD.EXTMALL_ID /*제휴몰ID*/
  74. , E.EXTMALL_NM /*제휴몰명*/
  75. , OD.SUPPLY_COMP_CD /*공급업체코드*/
  76. , SC.SUPPLY_COMP_NM /*공급업체명*/
  77. , SC.DISTRIBUTION_GB /*유통구분*/
  78. , FN_GET_CODE_NM('G065',SC.DISTRIBUTION_GB) AS DISTRIBUTION_GB_NM /*유통구분명*/
  79. , SC.SETTLE_DAY /*정산주기*/
  80. , FN_GET_CODE_NM('G075',SC.SETTLE_DAY) AS SETTLE_DAY_NM /*정산주기명*/
  81. , DATE_FORMAT(O.ORD_DT,'%Y-%m-%d %H:%i:%S') AS ORD_DT /*주문일시*/
  82. , ODIH.ORD_DTL_STAT AS SETTLE_GB /*정산구분*/
  83. , FN_GET_CODE_NM('G720',ODIH.ORD_DTL_STAT) AS SETTLE_GB_NM /*정산구분명*/
  84. , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S') AS OCCUR_DT /*발생일시*/
  85. , OD.GOODS_CD /*상품코드*/
  86. , G.GOODS_NM /*상품명*/
  87. , G.BRAND_CD /*브랜드코드*/
  88. , B.BRAND_ENM /*브랜드명*/
  89. , (SELECT U.USER_NM
  90. FROM TB_BRAND_MD BM
  91. , TB_USER U
  92. WHERE BM.MD_NO = U.USER_NO
  93. AND BM.BRAND_CD = G.BRAND_CD
  94. AND BM.FORMAL_GB = G.FORMAL_GB
  95. LIMIT 1) AS MD_NM /*담당MD*/
  96. , ODIH.ITEM_CD /*단품코드*/
  97. , ODIH.OPT_CD1 /*옵션코드1*/
  98. , ODIH.OPT_CD2 /*옵션코드2*/
  99. , ODIH.ITEM_PRICE AS SELL_PRICE /*판매가*/
  100. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  101. *
  102. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  103. ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
  104. ELSE /*환입-반품완료,환입-교환완료*/
  105. ODIH.CNCL_RTN_QTY
  106. END AS SIGNED INT) AS SELL_QTY /*판매수량*/
  107. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  108. *
  109. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  110. ODIH.ORD_AMT - ODIH.CNCL_RTN_AMT + ODIH.CPN1_DC_AMT
  111. ELSE /*환입-반품완료,환입-교환완료*/
  112. ODIH.CNCL_RTN_AMT + ODIH.CPN1_DC_AMT
  113. END AS SIGNED INT) AS SELL_AMT /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
  114. , ODIH.CPN1_DC_AMT /*즉시사용쿠폰금액*/
  115. , ODIH.GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  116. , ODIH.CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  117. , ODIH.PNT_DC_AMT /*포인트사용금액*/
  118. , ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT AS TMTB_DC_AMT /*다다익선할인금액*/
  119. , ODIH.GFCD_USE_AMT /*상품권사용금액*/
  120. , ((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
  121. + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
  122. + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  123. , (IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
  124. + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
  125. + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  126. , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
  127. SC.SELL_FEE_RATE
  128. ELSE /*제휴몰*/
  129. IFNULL(E.SELL_FEE_RATE,0)
  130. END AS SELL_FEE_RATE /*판매수수료율*/
  131. FROM TB_ORDER_DETAIL_ITEM_HST ODIH
  132. INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
  133. INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
  134. INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
  135. INNER JOIN TB_GOODS G ON OD.GOODS_CD = G.GOODS_CD
  136. INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
  137. LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
  138. LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
  139. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  140. LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON OD.GOODS_CPN_SQ = CB1.CPN_ID
  141. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  142. LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON OD.CART_CPN_SQ = CB1.CPN_ID
  143. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  144. WHERE 1 = 1
  145. AND ODIH.REG_DT >= STR_TO_DATE( '2021-06-07' /**P*/,'%Y-%m-%d')
  146. AND ODIH.REG_DT < DATE_ADD(STR_TO_DATE( '2021-07-06' /**P*/,'%Y-%m-%d'), INTERVAL 1 DAY)
  147. AND ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중,환입-반품완료,환입-교환완료*/
  148. ) ODIH
  149. ORDER BY ODIH.ORD_DTL_ITEM_HST_SQ