정산_상품정산_기준으로_정산확정_데이터_집계.sql 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. /* TsaSettle.getGoodsSettleList */
  2. SELECT ODIH.ORD_NO /*주문번호*/
  3. , ODIH.ORD_DTL_NO /*주문상세번호*/
  4. , ODIH.MALL_GB /*몰구분*/
  5. , ODIH.MALL_GB_NM /*몰구분명*/
  6. , ODIH.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  7. , ODIH.EXTMALL_ID /*제휴몰ID*/
  8. , ODIH.EXTMALL_NM /*제휴몰명*/
  9. , ODIH.SUPPLY_VENDOR_CD /*공급벤더코드*/
  10. , ODIH.SUPPLY_VENDOR_NM /*공급벤더명*/
  11. , ODIH.SUPPLY_COMP_CD /*공급업체코드*/
  12. , ODIH.SUPPLY_COMP_NM /*공급업체명*/
  13. , ODIH.DISTRIBUTION_GB /*유통구분*/
  14. , ODIH.DISTRIBUTION_GB_NM /*유통구분명*/
  15. , ODIH.SETTLE_DAY /*정산주기*/
  16. , ODIH.SETTLE_DAY_NM /*정산주기명*/
  17. , ODIH.ORD_DT /*주문일시*/
  18. , ODIH.SETTLE_GB /*정산구분*/
  19. , ODIH.SETTLE_GB_NM /*정산구분명*/
  20. , ODIH.OCCUR_DT /*발생일시*/
  21. , ODIH.GOODS_CD /*상품코드*/
  22. , ODIH.GOODS_NM /*상품명*/
  23. , ODIH.BRAND_CD /*브랜드코드*/
  24. , ODIH.BRAND_ENM /*브랜드명*/
  25. , ODIH.MD_NM /*담당MD*/
  26. , ODIH.ITEM_CD /*단품코드*/
  27. , ODIH.OPT_CD1 /*옵션코드1*/
  28. , ODIH.OPT_CD2 /*옵션코드2*/
  29. , ODIH.MALL_PRICE /*몰판매가*/
  30. , ODIH.SELL_PRICE /*판매가*/
  31. , ODIH.SELL_QTY /*판매수량*/
  32. , ODIH.SELL_AMT /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
  33. , IF(ODIH.CPN1_DC_AMT = -0,0,ODIH.CPN1_DC_AMT)
  34. + IF(ODIH.GOODS_CPN_DC_AMT = -0,0,ODIH.GOODS_CPN_DC_AMT)
  35. + IF(ODIH.CART_CPN_DC_AMT = -0,0,ODIH.CART_CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  36. , IF(ODIH.CPN1_DC_AMT = -0,0,ODIH.CPN1_DC_AMT) AS CPN1_DC_AMT /*즉시사용쿠폰금액*/
  37. , IF(ODIH.GOODS_CPN_DC_AMT = -0,0,ODIH.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  38. , IF(ODIH.CART_CPN_DC_AMT = -0,0,ODIH.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  39. , IF(ODIH.PNT_DC_AMT = -0,0,ODIH.PNT_DC_AMT) AS PNT_DC_AMT /*포인트사용금액*/
  40. , IF(ODIH.TMTB_DC_AMT = -0,0,ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  41. , IF(ODIH.SELF_TMTB_DC_AMT = -0,0,ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  42. , IF(ODIH.SUPPLY_COMP_TMTB_DC_AMT = -0,0,ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  43. , IF(ODIH.GFCD_USE_AMT = -0,0,ODIH.GFCD_USE_AMT) AS GFCD_USE_AMT /*상품권사용금액*/
  44. , IF(ODIH.SELF_CPN_DC_AMT = -0,0,ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  45. , IF(ODIH.SUPPLY_COMP_CPN_DC_AMT = -0,0,ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  46. , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
  47. ELSE
  48. (ODIH.SELL_AMT
  49. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  50. - ODIH.TMTB_DC_AMT
  51. ) / ODIH.SELL_QTY
  52. END AS REAL_SELL_PRICE /*실판매가*/
  53. , ODIH.SELL_AMT
  54. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  55. - ODIH.TMTB_DC_AMT AS REAL_SELL_AMT /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
  56. , ODIH.SELL_FEE_RATE /*판매수수료율*/
  57. , ROUND((ODIH.SELL_AMT
  58. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  59. - ODIH.TMTB_DC_AMT
  60. ) * (ODIH.SELL_FEE_RATE / 100),0) AS SELL_FEE_AMT /*수수료*/
  61. , (ODIH.SELL_AMT
  62. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  63. - ODIH.TMTB_DC_AMT)
  64. - ROUND((ODIH.SELL_AMT
  65. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  66. - ODIH.TMTB_DC_AMT
  67. ) * (ODIH.SELL_FEE_RATE / 100),0)
  68. + (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) AS SETTLE_AMT /*정산대상액(실판매금액 - 수수료 + 자사다다익선분담액 + 자사쿠폰분담액)*/
  69. FROM (
  70. SELECT ODIH.ORD_DTL_ITEM_HST_SQ /*주문상세단품이력일련번호*/
  71. , ODIH.ORD_NO /*주문번호*/
  72. , ODIH.ORD_DTL_NO /*주문상세번호*/
  73. , O.MALL_GB /*몰구분*/
  74. , FN_GET_CODE_NM('G011',O.MALL_GB) AS MALL_GB_NM /*몰구분명*/
  75. , OD.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  76. , OD.EXTMALL_ID /*제휴몰ID*/
  77. , E.EXTMALL_NM /*제휴몰명*/
  78. , SC.SUPPLY_VENDOR_CD /*공급벤더코드*/
  79. , SV.SUPPLY_VENDOR_NM /*공급벤더명*/
  80. , OD.SUPPLY_COMP_CD /*공급업체코드*/
  81. , SC.SUPPLY_COMP_NM /*공급업체명*/
  82. , SC.DISTRIBUTION_GB /*유통구분*/
  83. , FN_GET_CODE_NM('G065',SC.DISTRIBUTION_GB) AS DISTRIBUTION_GB_NM /*유통구분명*/
  84. , SV.SETTLE_DAY /*정산주기*/
  85. , FN_GET_CODE_NM('G075',SV.SETTLE_DAY) AS SETTLE_DAY_NM /*정산주기명*/
  86. , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S') AS ORD_DT /*주문일시*/
  87. , ODIH.ORD_DTL_STAT AS SETTLE_GB /*정산구분*/
  88. , FN_GET_CODE_NM('G720',ODIH.ORD_DTL_STAT) AS SETTLE_GB_NM /*정산구분명*/
  89. , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S') AS OCCUR_DT /*발생일시*/
  90. , OD.GOODS_CD /*상품코드*/
  91. , G.GOODS_NM /*상품명*/
  92. , G.BRAND_CD /*브랜드코드*/
  93. , B.BRAND_ENM /*브랜드명*/
  94. , (SELECT U.USER_NM
  95. FROM TB_BRAND_MD BM
  96. , TB_USER U
  97. WHERE BM.MD_NO = U.USER_NO
  98. AND BM.BRAND_CD = G.BRAND_CD
  99. AND BM.FORMAL_GB = G.FORMAL_GB
  100. LIMIT 1) AS MD_NM /*담당MD*/
  101. , ODIH.ITEM_CD /*단품코드*/
  102. , ODIH.OPT_CD1 /*옵션코드1*/
  103. , ODIH.OPT_CD2 /*옵션코드2*/
  104. , ODIH.ITEM_PRICE AS MALL_PRICE /*몰판매가*/
  105. , CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  106. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  107. ELSE
  108. ODIH.ITEM_PRICE
  109. END AS SELL_PRICE /*판매가(정산용)*/
  110. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  111. *
  112. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  113. ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
  114. ELSE /*환입-반품완료,환입-교환완료*/
  115. ODIH.CNCL_RTN_QTY
  116. END AS SIGNED INT) AS SELL_QTY /*판매수량*/
  117. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  118. *
  119. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  120. ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  121. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  122. ELSE
  123. ODIH.ITEM_PRICE
  124. END))
  125. ELSE /*환입-반품완료,환입-교환완료*/
  126. (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  127. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  128. ELSE
  129. ODIH.ITEM_PRICE
  130. END))
  131. END AS SIGNED INT) AS SELL_AMT /*판매금액*/
  132. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CPN1_DC_AMT AS CPN1_DC_AMT /*즉시사용쿠폰금액*/
  133. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GOODS_CPN_DC_AMT AS GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  134. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CART_CPN_DC_AMT AS CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  135. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.PNT_DC_AMT AS PNT_DC_AMT /*포인트사용금액*/
  136. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  137. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  138. (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
  139. + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  140. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  141. ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
  142. + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  143. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GFCD_USE_AMT AS GFCD_USE_AMT /*상품권사용금액*/
  144. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  145. (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
  146. + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
  147. + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  148. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  149. ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
  150. + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
  151. + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  152. , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
  153. OD.SELL_FEE_RATE
  154. ELSE /*제휴몰*/
  155. IFNULL(E.SELL_FEE_RATE,0)
  156. END AS SELL_FEE_RATE /*판매수수료율*/
  157. FROM TB_ORDER_DETAIL_ITEM_HST ODIH
  158. INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
  159. INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
  160. INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
  161. INNER JOIN TB_SUPPLY_VENDOR SV ON SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
  162. INNER JOIN TB_GOODS G ON OD.GOODS_CD = G.GOODS_CD
  163. INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
  164. LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
  165. LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
  166. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  167. LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON OD.GOODS_CPN_SQ = CB2.CPN_ID
  168. AND OD.SUPPLY_COMP_CD = CB2.SUPPLY_COMP_CD
  169. LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON OD.CART_CPN_SQ = CB3.CPN_ID
  170. AND OD.SUPPLY_COMP_CD = CB3.SUPPLY_COMP_CD
  171. LEFT OUTER JOIN TB_TMTB_BURDEN TB1 ON OD.TMTB1_SQ = TB1.TMTB_SQ
  172. AND OD.SUPPLY_COMP_CD = TB1.TMTB_SUPPLY_CD
  173. LEFT OUTER JOIN TB_TMTB_BURDEN TB2 ON OD.TMTB2_SQ = TB2.TMTB_SQ
  174. AND OD.SUPPLY_COMP_CD = TB2.TMTB_SUPPLY_CD
  175. LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
  176. WHERE 1 = 1
  177. AND ODIH.REG_DT >= STR_TO_DATE('2021-09-01','%Y-%m-%d')
  178. AND ODIH.REG_DT < DATE_ADD(STR_TO_DATE('2021-09-30','%Y-%m-%d'), INTERVAL 1 DAY)
  179. AND ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중,환입-반품완료,환입-교환완료*/
  180. AND SV.SUPPLY_VENDOR_CD = 'SV0004'
  181. ) ODIH
  182. ORDER BY ODIH.ORD_DTL_ITEM_HST_SQ
  183. ;
  184. /*정산확정 데이터 목록*/
  185. /* TsaSettle.createSettleConfirm */
  186. -- 1.AS-IS. 수정 전
  187. SELECT ODIH.USAC_DT /*정산일*/
  188. , SC.SUPPLY_VENDOR_CD /*공급벤더코드*/
  189. , SUM(ODIH.SELL_QTY) AS SELL_QTY /*판매수량*/
  190. , SUM(ODIH.REAL_SELL_AMT) AS REAL_SELL_AMT /*실판매금액(=상품총액)*/
  191. , SUM(ODIH.SELL_FEE_AMT) AS SELL_FEE_AMT /*수수료*/
  192. , SUM(ODIH.CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  193. , SUM(ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  194. , SUM(ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  195. , SUM(ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  196. , SUM(ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  197. , SUM(ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  198. , SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  199. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  200. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  201. END
  202. ELSE
  203. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  204. END) AS BILL_AMT /*계산서발행금액*/
  205. , TRUNCATE(SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  206. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  207. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  208. END
  209. ELSE
  210. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  211. END) / 1.1,0) AS SUPPLY_AMT /*공급가액*/
  212. , SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  213. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  214. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  215. END
  216. ELSE
  217. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  218. END) - TRUNCATE(SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  219. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  220. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  221. END
  222. ELSE
  223. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  224. END) / 1.1,0) AS TAX_AMT /*세액*/
  225. FROM (
  226. SELECT DATE_FORMAT(ODIH.OCCUR_DT,'%Y%m%d') AS USAC_DT /*정산일*/
  227. , ODIH.SUPPLY_COMP_CD /*공급업체코드*/
  228. , SUM(ODIH.SELL_QTY) AS SELL_QTY /*판매수량*/
  229. , SUM(ODIH.SELL_AMT
  230. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  231. - ODIH.TMTB_DC_AMT) AS REAL_SELL_AMT /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
  232. , ROUND(SUM((ODIH.SELL_AMT
  233. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  234. - ODIH.TMTB_DC_AMT
  235. ) * (ODIH.SELL_FEE_RATE / 100)),0) AS SELL_FEE_AMT /*수수료*/
  236. , SUM(ODIH.CPN1_DC_AMT +
  237. ODIH.GOODS_CPN_DC_AMT +
  238. ODIH.CART_CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  239. , SUM(ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  240. , SUM(ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  241. , SUM(ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  242. , SUM(ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  243. , SUM(ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  244. FROM (
  245. /* 이 부분 대신 상품정산목록 조회 쿼리문으로 대체. TO-BE 쿼리문 참조 START */
  246. SELECT ODIH.REG_DT AS OCCUR_DT /*발생일시*/
  247. , OD.SUPPLY_COMP_CD /*공급업체코드*/
  248. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  249. *
  250. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  251. ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
  252. ELSE /*환입-반품완료,환입-교환완료*/
  253. ODIH.CNCL_RTN_QTY
  254. END AS SIGNED INT) AS SELL_QTY /*판매수량*/
  255. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  256. *
  257. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  258. ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  259. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  260. ELSE
  261. ODIH.ITEM_PRICE
  262. END))
  263. ELSE /*환입-반품완료,환입-교환완료*/
  264. (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  265. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  266. ELSE
  267. ODIH.ITEM_PRICE
  268. END))
  269. END AS SIGNED INT) AS SELL_AMT /*판매금액*/
  270. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CPN1_DC_AMT AS CPN1_DC_AMT /*즉시사용쿠폰금액*/
  271. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GOODS_CPN_DC_AMT AS GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  272. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CART_CPN_DC_AMT AS CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  273. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.PNT_DC_AMT AS PNT_DC_AMT /*포인트사용금액*/
  274. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  275. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  276. (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
  277. + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  278. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  279. ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
  280. + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  281. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  282. (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
  283. + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
  284. + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  285. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  286. ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
  287. + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
  288. + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  289. , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
  290. OD.SELL_FEE_RATE
  291. ELSE /*제휴몰*/
  292. IFNULL(E.SELL_FEE_RATE,0)
  293. END AS SELL_FEE_RATE /*판매수수료율*/
  294. FROM TB_ORDER_DETAIL_ITEM_HST ODIH
  295. INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
  296. INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
  297. LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
  298. LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
  299. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  300. LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON OD.GOODS_CPN_SQ = CB2.CPN_ID
  301. AND OD.SUPPLY_COMP_CD = CB2.SUPPLY_COMP_CD
  302. LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON OD.CART_CPN_SQ = CB3.CPN_ID
  303. AND OD.SUPPLY_COMP_CD = CB3.SUPPLY_COMP_CD
  304. LEFT OUTER JOIN TB_TMTB_BURDEN TB1 ON OD.TMTB1_SQ = TB1.TMTB_SQ
  305. AND OD.SUPPLY_COMP_CD = TB1.TMTB_SUPPLY_CD
  306. LEFT OUTER JOIN TB_TMTB_BURDEN TB2 ON OD.TMTB2_SQ = TB2.TMTB_SQ
  307. AND OD.SUPPLY_COMP_CD = TB2.TMTB_SUPPLY_CD
  308. LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
  309. WHERE 1 = 1
  310. AND ODIH.REG_DT >= STR_TO_DATE('2021-09-01','%Y-%m-%d')
  311. AND ODIH.REG_DT < DATE_ADD(STR_TO_DATE('2021-09-30','%Y-%m-%d'), INTERVAL 1 DAY)
  312. AND ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중,환입-반품완료,환입-교환완료*/
  313. ) ODIH
  314. GROUP BY DATE_FORMAT(ODIH.OCCUR_DT,'%Y%m%d')
  315. , ODIH.SUPPLY_COMP_CD
  316. ) ODIH
  317. , TB_SUPPLY_COMPANY SC
  318. WHERE ODIH.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
  319. GROUP BY ODIH.USAC_DT
  320. , SC.SUPPLY_VENDOR_CD
  321. ;
  322. -- TO-BE. 수정 후 (상품정산 데이터를 기준으로 집계하도록 ...)
  323. SELECT ODIH.USAC_DT /*정산일*/
  324. , SC.SUPPLY_VENDOR_CD /*공급벤더코드*/
  325. , SUM(ODIH.SELL_QTY) AS SELL_QTY /*판매수량*/
  326. , SUM(ODIH.REAL_SELL_AMT) AS REAL_SELL_AMT /*실판매금액(=상품총액)*/
  327. , SUM(ODIH.SELL_FEE_AMT) AS SELL_FEE_AMT /*수수료*/
  328. , SUM(ODIH.CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  329. , SUM(ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  330. , SUM(ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  331. , SUM(ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  332. , SUM(ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  333. , SUM(ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  334. , SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  335. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  336. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  337. END
  338. ELSE
  339. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  340. END) AS BILL_AMT /*계산서발행금액*/
  341. , TRUNCATE(SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  342. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  343. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  344. END
  345. ELSE
  346. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  347. END) / 1.1,0) AS SUPPLY_AMT /*공급가액*/
  348. , SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  349. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  350. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  351. END
  352. ELSE
  353. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  354. END) - TRUNCATE(SUM(CASE WHEN ODIH.SELL_FEE_AMT > 0 THEN
  355. CASE WHEN ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) < 0 THEN 0
  356. ELSE ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  357. END
  358. ELSE
  359. ODIH.SELL_FEE_AMT - (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)
  360. END) / 1.1,0) AS TAX_AMT /*세액*/
  361. FROM (
  362. SELECT DATE_FORMAT(ODIH.OCCUR_DT,'%Y%m%d') AS USAC_DT /*정산일*/
  363. , ODIH.SUPPLY_COMP_CD /*공급업체코드*/
  364. , SUM(ODIH.SELL_QTY) AS SELL_QTY /*판매수량*/
  365. , SUM(ODIH.SELL_AMT
  366. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  367. - ODIH.TMTB_DC_AMT) AS REAL_SELL_AMT /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
  368. , ROUND(SUM((ODIH.SELL_AMT
  369. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  370. - ODIH.TMTB_DC_AMT
  371. ) * (ODIH.SELL_FEE_RATE / 100)),0) AS SELL_FEE_AMT /*수수료*/
  372. , SUM(ODIH.CPN1_DC_AMT +
  373. ODIH.GOODS_CPN_DC_AMT +
  374. ODIH.CART_CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  375. , SUM(ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  376. , SUM(ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  377. , SUM(ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  378. , SUM(ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  379. , SUM(ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  380. FROM (
  381. /* 이 부분 대신 상품정산목록 조회 쿼리문으로 대체함. */
  382. SELECT ODIH.ORD_NO /*주문번호*/
  383. , ODIH.ORD_DTL_NO /*주문상세번호*/
  384. , ODIH.MALL_GB /*몰구분*/
  385. , ODIH.MALL_GB_NM /*몰구분명*/
  386. , ODIH.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  387. , ODIH.EXTMALL_ID /*제휴몰ID*/
  388. , ODIH.EXTMALL_NM /*제휴몰명*/
  389. , ODIH.SUPPLY_VENDOR_CD /*공급벤더코드*/
  390. , ODIH.SUPPLY_VENDOR_NM /*공급벤더명*/
  391. , ODIH.SUPPLY_COMP_CD /*공급업체코드*/
  392. , ODIH.SUPPLY_COMP_NM /*공급업체명*/
  393. , ODIH.DISTRIBUTION_GB /*유통구분*/
  394. , ODIH.DISTRIBUTION_GB_NM /*유통구분명*/
  395. , ODIH.SETTLE_DAY /*정산주기*/
  396. , ODIH.SETTLE_DAY_NM /*정산주기명*/
  397. , ODIH.ORD_DT /*주문일시*/
  398. , ODIH.SETTLE_GB /*정산구분*/
  399. , ODIH.SETTLE_GB_NM /*정산구분명*/
  400. , ODIH.OCCUR_DT /*발생일시*/
  401. , ODIH.GOODS_CD /*상품코드*/
  402. , ODIH.GOODS_NM /*상품명*/
  403. , ODIH.BRAND_CD /*브랜드코드*/
  404. , ODIH.BRAND_ENM /*브랜드명*/
  405. , ODIH.MD_NM /*담당MD*/
  406. , ODIH.ITEM_CD /*단품코드*/
  407. , ODIH.OPT_CD1 /*옵션코드1*/
  408. , ODIH.OPT_CD2 /*옵션코드2*/
  409. , ODIH.MALL_PRICE /*몰판매가*/
  410. , ODIH.SELL_PRICE /*판매가*/
  411. , ODIH.SELL_QTY /*판매수량*/
  412. , ODIH.SELL_AMT /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
  413. , IF(ODIH.CPN1_DC_AMT = -0,0,ODIH.CPN1_DC_AMT)
  414. + IF(ODIH.GOODS_CPN_DC_AMT = -0,0,ODIH.GOODS_CPN_DC_AMT)
  415. + IF(ODIH.CART_CPN_DC_AMT = -0,0,ODIH.CART_CPN_DC_AMT) AS CPN_DC_AMT /*쿠폰할인금액*/
  416. , IF(ODIH.CPN1_DC_AMT = -0,0,ODIH.CPN1_DC_AMT) AS CPN1_DC_AMT /*즉시사용쿠폰금액*/
  417. , IF(ODIH.GOODS_CPN_DC_AMT = -0,0,ODIH.GOODS_CPN_DC_AMT) AS GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  418. , IF(ODIH.CART_CPN_DC_AMT = -0,0,ODIH.CART_CPN_DC_AMT) AS CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  419. , IF(ODIH.PNT_DC_AMT = -0,0,ODIH.PNT_DC_AMT) AS PNT_DC_AMT /*포인트사용금액*/
  420. , IF(ODIH.TMTB_DC_AMT = -0,0,ODIH.TMTB_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  421. , IF(ODIH.SELF_TMTB_DC_AMT = -0,0,ODIH.SELF_TMTB_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  422. , IF(ODIH.SUPPLY_COMP_TMTB_DC_AMT = -0,0,ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  423. , IF(ODIH.GFCD_USE_AMT = -0,0,ODIH.GFCD_USE_AMT) AS GFCD_USE_AMT /*상품권사용금액*/
  424. , IF(ODIH.SELF_CPN_DC_AMT = -0,0,ODIH.SELF_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  425. , IF(ODIH.SUPPLY_COMP_CPN_DC_AMT = -0,0,ODIH.SUPPLY_COMP_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  426. , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
  427. ELSE
  428. (ODIH.SELL_AMT
  429. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  430. - ODIH.TMTB_DC_AMT
  431. ) / ODIH.SELL_QTY
  432. END AS REAL_SELL_PRICE /*실판매가*/
  433. , ODIH.SELL_AMT
  434. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  435. - ODIH.TMTB_DC_AMT AS REAL_SELL_AMT /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
  436. , ODIH.SELL_FEE_RATE /*판매수수료율*/
  437. , ROUND((ODIH.SELL_AMT
  438. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  439. - ODIH.TMTB_DC_AMT
  440. ) * (ODIH.SELL_FEE_RATE / 100),0) AS SELL_FEE_AMT /*수수료*/
  441. , (ODIH.SELL_AMT
  442. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  443. - ODIH.TMTB_DC_AMT)
  444. - ROUND((ODIH.SELL_AMT
  445. - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
  446. - ODIH.TMTB_DC_AMT
  447. ) * (ODIH.SELL_FEE_RATE / 100),0)
  448. + (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) AS SETTLE_AMT /*정산대상액(실판매금액 - 수수료 + 자사다다익선분담액 + 자사쿠폰분담액)*/
  449. FROM (
  450. SELECT ODIH.ORD_DTL_ITEM_HST_SQ /*주문상세단품이력일련번호*/
  451. , ODIH.ORD_NO /*주문번호*/
  452. , ODIH.ORD_DTL_NO /*주문상세번호*/
  453. , O.MALL_GB /*몰구분*/
  454. , FN_GET_CODE_NM('G011',O.MALL_GB) AS MALL_GB_NM /*몰구분명*/
  455. , OD.EXTMALL_ORDER_ID /*제휴몰주문번호*/
  456. , OD.EXTMALL_ID /*제휴몰ID*/
  457. , E.EXTMALL_NM /*제휴몰명*/
  458. , SC.SUPPLY_VENDOR_CD /*공급벤더코드*/
  459. , SV.SUPPLY_VENDOR_NM /*공급벤더명*/
  460. , OD.SUPPLY_COMP_CD /*공급업체코드*/
  461. , SC.SUPPLY_COMP_NM /*공급업체명*/
  462. , SC.DISTRIBUTION_GB /*유통구분*/
  463. , FN_GET_CODE_NM('G065',SC.DISTRIBUTION_GB) AS DISTRIBUTION_GB_NM /*유통구분명*/
  464. , SV.SETTLE_DAY /*정산주기*/
  465. , FN_GET_CODE_NM('G075',SV.SETTLE_DAY) AS SETTLE_DAY_NM /*정산주기명*/
  466. , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S') AS ORD_DT /*주문일시*/
  467. , ODIH.ORD_DTL_STAT AS SETTLE_GB /*정산구분*/
  468. , FN_GET_CODE_NM('G720',ODIH.ORD_DTL_STAT) AS SETTLE_GB_NM /*정산구분명*/
  469. , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S') AS OCCUR_DT /*발생일시*/
  470. , OD.GOODS_CD /*상품코드*/
  471. , G.GOODS_NM /*상품명*/
  472. , G.BRAND_CD /*브랜드코드*/
  473. , B.BRAND_ENM /*브랜드명*/
  474. , (SELECT U.USER_NM
  475. FROM TB_BRAND_MD BM
  476. , TB_USER U
  477. WHERE BM.MD_NO = U.USER_NO
  478. AND BM.BRAND_CD = G.BRAND_CD
  479. AND BM.FORMAL_GB = G.FORMAL_GB
  480. LIMIT 1) AS MD_NM /*담당MD*/
  481. , ODIH.ITEM_CD /*단품코드*/
  482. , ODIH.OPT_CD1 /*옵션코드1*/
  483. , ODIH.OPT_CD2 /*옵션코드2*/
  484. , ODIH.ITEM_PRICE AS MALL_PRICE /*몰판매가*/
  485. , CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  486. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  487. ELSE
  488. ODIH.ITEM_PRICE
  489. END AS SELL_PRICE /*판매가(정산용)*/
  490. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  491. *
  492. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  493. ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
  494. ELSE /*환입-반품완료,환입-교환완료*/
  495. ODIH.CNCL_RTN_QTY
  496. END AS SIGNED INT) AS SELL_QTY /*판매수량*/
  497. , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
  498. *
  499. CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
  500. ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  501. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  502. ELSE
  503. ODIH.ITEM_PRICE
  504. END))
  505. ELSE /*환입-반품완료,환입-교환완료*/
  506. (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
  507. IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
  508. ELSE
  509. ODIH.ITEM_PRICE
  510. END))
  511. END AS SIGNED INT) AS SELL_AMT /*판매금액*/
  512. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CPN1_DC_AMT AS CPN1_DC_AMT /*즉시사용쿠폰금액*/
  513. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GOODS_CPN_DC_AMT AS GOODS_CPN_DC_AMT /*상품쿠폰사용금액*/
  514. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CART_CPN_DC_AMT AS CART_CPN_DC_AMT /*주문서쿠폰사용금액*/
  515. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.PNT_DC_AMT AS PNT_DC_AMT /*포인트사용금액*/
  516. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT /*다다익선할인금액*/
  517. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  518. (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
  519. + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT) AS SELF_TMTB_DC_AMT /*자사다다익선분담액*/
  520. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  521. ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
  522. + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
  523. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GFCD_USE_AMT AS GFCD_USE_AMT /*상품권사용금액*/
  524. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  525. (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
  526. + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
  527. + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT) AS SELF_CPN_DC_AMT /*자사쿠폰분담액*/
  528. , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
  529. ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
  530. + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
  531. + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT) AS SUPPLY_COMP_CPN_DC_AMT /*입점쿠폰분담액*/
  532. , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
  533. OD.SELL_FEE_RATE
  534. ELSE /*제휴몰*/
  535. IFNULL(E.SELL_FEE_RATE,0)
  536. END AS SELL_FEE_RATE /*판매수수료율*/
  537. FROM TB_ORDER_DETAIL_ITEM_HST ODIH
  538. INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
  539. INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
  540. INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
  541. INNER JOIN TB_SUPPLY_VENDOR SV ON SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
  542. INNER JOIN TB_GOODS G ON OD.GOODS_CD = G.GOODS_CD
  543. INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
  544. LEFT OUTER JOIN TB_EXTMALL E ON OD.EXTMALL_ID = E.EXTMALL_ID
  545. LEFT OUTER JOIN TB_COUPON_BURDEN CB1 ON OD.CPN1_CPN_SQ = CB1.CPN_ID
  546. AND OD.SUPPLY_COMP_CD = CB1.SUPPLY_COMP_CD
  547. LEFT OUTER JOIN TB_COUPON_BURDEN CB2 ON OD.GOODS_CPN_SQ = CB2.CPN_ID
  548. AND OD.SUPPLY_COMP_CD = CB2.SUPPLY_COMP_CD
  549. LEFT OUTER JOIN TB_COUPON_BURDEN CB3 ON OD.CART_CPN_SQ = CB3.CPN_ID
  550. AND OD.SUPPLY_COMP_CD = CB3.SUPPLY_COMP_CD
  551. LEFT OUTER JOIN TB_TMTB_BURDEN TB1 ON OD.TMTB1_SQ = TB1.TMTB_SQ
  552. AND OD.SUPPLY_COMP_CD = TB1.TMTB_SUPPLY_CD
  553. LEFT OUTER JOIN TB_TMTB_BURDEN TB2 ON OD.TMTB2_SQ = TB2.TMTB_SQ
  554. AND OD.SUPPLY_COMP_CD = TB2.TMTB_SUPPLY_CD
  555. LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
  556. WHERE 1 = 1
  557. AND ODIH.REG_DT >= STR_TO_DATE('2021-09-01','%Y-%m-%d')
  558. AND ODIH.REG_DT < DATE_ADD(STR_TO_DATE('2021-09-30','%Y-%m-%d'), INTERVAL 1 DAY)
  559. AND ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중,환입-반품완료,환입-교환완료*/
  560. ) ODIH
  561. /* 이 부분 대신 상품정산목록 조회 쿼리문으로 대체함 */
  562. ) ODIH
  563. GROUP BY DATE_FORMAT(ODIH.OCCUR_DT,'%Y%m%d')
  564. , ODIH.SUPPLY_COMP_CD
  565. ) ODIH
  566. , TB_SUPPLY_COMPANY SC
  567. WHERE ODIH.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
  568. GROUP BY ODIH.USAC_DT
  569. , SC.SUPPLY_VENDOR_CD
  570. ;