오픈시_DB마이그레이션후_작업할_DB처리_Script.sql 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. -- 1.1. WMS재고이력 데이터 삭제 (2개월전 데이터)
  2. DELETE FROM TB_WMS_STOCK_HST
  3. WHERE JOBDATE < DATE_ADD(DATE_FORMAT(NOW(), '%Y%m%d'), INTERVAL -2 MONTH)
  4. ;
  5. -- 1.2. WMS재고이력 생성
  6. INSERT INTO TB_WMS_STOCK_HST (
  7. JOBDATE
  8. , PRODUCT_NO
  9. , SKU_CODE
  10. , LOC_QTY
  11. , PICKING_QTY
  12. , EOUT_PICKING_QTY
  13. )
  14. SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') AS JOBDATE
  15. , PRODUCT_NO
  16. , SKU_CODE
  17. , LOC_QTY
  18. , PICKING_QTY
  19. , EOUT_PICKING_QTY
  20. FROM TB_WMS_STOCK
  21. ;
  22. -- 2.1. WMS 재고 truncate
  23. TRUNCATE TABLE TB_WMS_STOCK;
  24. -- 2.2. WMS 재고 수신 (MSSQL 접속. 배치로 처리해야 함)
  25. SELECT PRODUCT_NO
  26. , SKU_CODE
  27. , LOC_QTY
  28. , PICKING_QTY
  29. , EOUT_PICKING_QTY
  30. FROM (
  31. SELECT PRODUCT_NO
  32. , SKU_CODE
  33. , SUM(LOC_QTY) AS LOC_QTY
  34. , SUM(PICKING_QTY) AS PICKING_QTY
  35. , SUM(EOUT_PICKING_QTY) AS EOUT_PICKING_QTY
  36. FROM iSTYLE24_WMS.DBO.VW_STOCK_BY_LOCCODE
  37. GROUP BY PRODUCT_NO, SKU_CODE
  38. ) Z
  39. WHERE 1 = 1
  40. AND LOC_QTY - PICKING_QTY - EOUT_PICKING_QTY > 0
  41. ;
  42. -- 3.1 매장재고 삭제
  43. TRUNCATE TABLE TB_SHOP_STOCK;
  44. -- 3.2. 출고처별 판매비율을 적용한 매장재고 생성
  45. INSERT INTO TB_SHOP_STOCK (
  46. SUPPLY_COMP_CD
  47. , CD_SHOP
  48. , CD_STYLE
  49. , CD_COLOR
  50. , CD_SIZE
  51. , QT_STOCK
  52. , OPT_CD
  53. , OPT_CD1
  54. , STORE_STOCK_QTY
  55. , UPD_DT
  56. )
  57. SELECT A.SUPPLY_COMP_CD
  58. , A.CD_SHOP
  59. , A.CD_STYLE
  60. , A.CD_COLOR
  61. , A.CD_SIZE
  62. , A.QT_STOCK
  63. , E.OPT_CD
  64. , E.OPT_CD1
  65. , ROUND(GREATEST(A.QT_STOCK, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS STORE_STOCK_QTY
  66. , NOW()
  67. FROM (SELECT S.SUPPLY_COMP_CD
  68. , S.CD_SHOP
  69. , S.CD_STYLE
  70. , S.CD_COLOR
  71. , S.CD_SIZE
  72. , S.QT_STOCK
  73. , M.COLOR_CD AS OPT_CD1
  74. FROM TB_SHOP_GOODS_STOCK S
  75. INNER JOIN TB_WMS_COLOR_MAPPING M ON S.SUPPLY_COMP_CD = M.SUPPLY_COMP_CD
  76. AND S.CD_COLOR = M.WMS_COLOR_CD
  77. AND M.USE_YN = 'Y') A
  78. INNER JOIN TB_OPTION E USE INDEX(PRIMARY) ON A.CD_STYLE = E.GOODS_CD
  79. AND A.OPT_CD1 = E.OPT_CD1
  80. AND A.CD_SIZE = E.OPT_CD2
  81. INNER JOIN TB_GOODS B ON A.CD_STYLE = B.GOODS_CD
  82. AND B.SELF_GOODS_YN = 'Y'
  83. AND B.ERP_STOCK_LINK_YN = 'Y'
  84. INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
  85. AND C.STOCK_SYNC_YN = 'Y'
  86. AND A.CD_SHOP = C.DELV_LOC_CD
  87. INNER JOIN TB_DELIVERY_LOC D ON A.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
  88. AND A.CD_SHOP = D.DELV_LOC_CD
  89. AND D.USE_YN = 'Y'
  90. ;
  91. -- 3.3. 매장재고이력 삭제 (2개월전 데이터)
  92. DELETE FROM TB_SHOP_STOCK_HST
  93. WHERE JOBDATE <![CDATA[<=]]> #{jobdate}
  94. ;
  95. INSERT INTO TB_SHOP_STOCK_HST(
  96. JOBDATE
  97. , SUPPLY_COMP_CD
  98. , CD_SHOP
  99. , CD_STYLE
  100. , CD_COLOR
  101. , CD_SIZE
  102. , QT_STOCK
  103. , OPT_CD
  104. , OPT_CD1
  105. , STORE_STOCK_QTY
  106. )
  107. SELECT #{jobdate}
  108. SUPPLY_COMP_CD
  109. , CD_SHOP
  110. , CD_STYLE
  111. , CD_COLOR
  112. , CD_SIZE
  113. , QT_STOCK
  114. , OPT_CD
  115. , OPT_CD1
  116. , STORE_STOCK_QTY
  117. FROM TB_SHOP_STOCK
  118. ;
  119. DELETE FROM TB_OPTION_SYNC_TMP;
  120. INSERT INTO TB_OPTION_SYNC_TMP
  121. (
  122. GOODS_CD
  123. , OPT_CD
  124. , OPT_CD1
  125. , OPT_CD2
  126. , SKU_MODEL_NO
  127. , PRODUCT_NO
  128. , PRODUCT_CODE
  129. , BASE_STOCK_QTY
  130. , CURR_STOCK_QTY
  131. , STORE_STOCK_QTY
  132. , STORE_MAX_QTY
  133. , ADD_PRICE
  134. , SOLDOUT_YN
  135. , DISP_ORD
  136. , DISP_YN
  137. , ERP_STOCK_LINK_YN
  138. , REG_NO
  139. , REG_DT
  140. , UPD_NO
  141. , UPD_DT
  142. )
  143. SELECT GOODS_CD
  144. , OPT_CD
  145. , OPT_CD1
  146. , OPT_CD2
  147. , SKU_MODEL_NO
  148. , PRODUCT_NO
  149. , PRODUCT_CODE
  150. , 0 AS BASE_STOCK_QTY
  151. , CURR_STOCK_QTY
  152. , 0 AS STORE_STOCK_QTY
  153. , 0 AS STORE_MAX_QTY
  154. , 0 AS ADD_PRICE
  155. , 'N' AS SOLDOUT_YN
  156. , DISP_ORD
  157. , 'Y' AS DISP_YN
  158. , ERP_STOCK_LINK_YN
  159. , 99999 AS REG_NO
  160. , NOW() AS REG_DT
  161. , 99999 AS UPD_NO
  162. , NOW() AS UPD_DT
  163. FROM (
  164. SELECT B.GOODS_CD
  165. , A.SKU_CODE AS OPT_CD
  166. , E.OPT_CD1
  167. , E.OPT_CD2
  168. , E.SKU_MODEL_NO
  169. , E.PRODUCT_NO
  170. , E.PRODUCT_CODE
  171. , ROUND((GREATEST(A.LOC_QTY, 0) - GREATEST(A.PICKING_QTY, 0) - GREATEST(A.EOUT_PICKING_QTY, 0)) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
  172. , E.STORE_STOCK_QTY
  173. , E.DISP_ORD
  174. , B.ERP_STOCK_LINK_YN
  175. FROM TB_WMS_STOCK A
  176. INNER JOIN TB_OPTION E ON A.PRODUCT_NO = E.PRODUCT_NO
  177. AND A.SKU_CODE = E.OPT_CD
  178. INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
  179. AND B.SELF_GOODS_YN = 'Y'
  180. AND B.ERP_STOCK_LINK_YN = 'Y'
  181. INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
  182. AND C.STOCK_SYNC_YN = 'Y'
  183. AND C.DELV_LOC_CD = 'ST0001' -- WMS 매장코드
  184. INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
  185. AND C.DELV_LOC_CD = D.DELV_LOC_CD
  186. AND D.USE_YN = 'Y'
  187. AND D.DELV_LOC_CD = 'ST0001' -- WMS 매장코드
  188. ) Z
  189. ;
  190. INSERT INTO TB_OPTION_SYNC_TMP
  191. (
  192. GOODS_CD
  193. , OPT_CD
  194. , OPT_CD1
  195. , OPT_CD2
  196. , SKU_MODEL_NO
  197. , PRODUCT_NO
  198. , PRODUCT_CODE
  199. , BASE_STOCK_QTY
  200. , CURR_STOCK_QTY
  201. , STORE_STOCK_QTY
  202. , STORE_MAX_QTY
  203. , ADD_PRICE
  204. , SOLDOUT_YN
  205. , DISP_ORD
  206. , DISP_YN
  207. , ERP_STOCK_LINK_YN
  208. , REG_NO
  209. , REG_DT
  210. , UPD_NO
  211. , UPD_DT
  212. )
  213. SELECT GOODS_CD
  214. , OPT_CD
  215. , OPT_CD1
  216. , OPT_CD2
  217. , SKU_MODEL_NO
  218. , PRODUCT_NO
  219. , PRODUCT_CODE
  220. , 0 AS BASE_STOCK_QTY
  221. , 0 AS CURR_STOCK_QTY
  222. , STORE_STOCK_QTY
  223. , 0 AS STORE_MAX_QTY
  224. , 0 AS ADD_PRICE
  225. , 'N' AS SOLDOUT_YN
  226. , DISP_ORD
  227. , 'Y' AS DISP_YN
  228. , ERP_STOCK_LINK_YN
  229. , 99999 AS REG_NO
  230. , NOW() AS REG_DT
  231. , 99999 AS UPD_NO
  232. , NOW() AS UPD_DT
  233. FROM (
  234. SELECT E.GOODS_CD
  235. , E.OPT_CD
  236. , E.OPT_CD1
  237. , E.OPT_CD2
  238. , E.SKU_MODEL_NO
  239. , E.PRODUCT_NO
  240. , E.PRODUCT_CODE
  241. , E.CURR_STOCK_QTY
  242. , SUM(A.STORE_STOCK_QTY) AS STORE_STOCK_QTY
  243. , B.ERP_STOCK_LINK_YN
  244. , E.DISP_ORD
  245. FROM TB_SHOP_STOCK A
  246. INNER JOIN TB_OPTION E ON A.CD_STYLE = E.GOODS_CD
  247. AND A.OPT_CD = E.OPT_CD
  248. INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
  249. AND B.SELF_GOODS_YN = 'Y'
  250. AND B.ERP_STOCK_LINK_YN = 'Y'
  251. GROUP BY GOODS_CD , OPT_CD , OPT_CD1 , OPT_CD2 , SKU_MODEL_NO , PRODUCT_NO , PRODUCT_CODE , CURR_STOCK_QTY , DISP_ORD , ERP_STOCK_LINK_YN
  252. ) Z
  253. ON DUPLICATE KEY UPDATE
  254. STORE_STOCK_QTY = Z.STORE_STOCK_QTY
  255. ;
  256. -- 입점상품 재고 동기화
  257. -- 입점상품 SELL_QTY 목록
  258. /* TsbGoods.getGoodsSelfNoStockList */
  259. SELECT A.GOODS_CD
  260. , A.OPT_CD
  261. , SUM(
  262. (CASE A.SELL_GB WHEN '10' THEN 1
  263. WHEN '20' THEN 1
  264. ELSE -1 END) * A.SELL_QTY
  265. ) AS SALE_STOCK_QTY
  266. FROM TB_SELL_QTY A
  267. , TB_GOODS B
  268. WHERE A.GOODS_CD = B.GOODS_CD
  269. AND B.SELF_GOODS_YN = 'N' -- 입점상품
  270. GROUP BY A.GOODS_CD, A.OPT_CD
  271. ;
  272. -- LOOP 돌면서
  273. -- 이력생성
  274. goodsDao.createStockHst(option);
  275. -- 재고 변경
  276. goodsDao.updateStock(option);
  277. -- TB_OPTION = > TB_OPTION_SYNC 적용
  278. TRUNCATE TABLE TB_OPTION_SYNC;
  279. -- TB_OPTION_SYNC.CURR_STOCK_QTY, STORE_STOCK_QTY, STORE_MAX_QTY 초기화
  280. INSERT INTO TB_OPTION_SYNC
  281. (
  282. GOODS_CD
  283. , OPT_CD
  284. , OPT_CD1
  285. , OPT_CD2
  286. , SKU_MODEL_NO
  287. , PRODUCT_NO
  288. , PRODUCT_CODE
  289. , BASE_STOCK_QTY
  290. , CURR_STOCK_QTY
  291. , STORE_STOCK_QTY
  292. , STORE_MAX_QTY
  293. , ADD_PRICE
  294. , SOLDOUT_YN
  295. , DISP_ORD
  296. , DISP_YN
  297. , ERP_STOCK_LINK_YN
  298. , REG_NO
  299. , REG_DT
  300. , UPD_NO
  301. , UPD_DT
  302. )
  303. SELECT B.GOODS_CD
  304. , B.OPT_CD
  305. , B.OPT_CD1
  306. , B.OPT_CD2
  307. , B.SKU_MODEL_NO
  308. , B.PRODUCT_NO
  309. , B.PRODUCT_CODE
  310. , B.BASE_STOCK_QTY
  311. , 0 AS CURR_STOCK_QTY
  312. , 0 AS STORE_STOCK_QTY
  313. , 0 AS STORE_MAX_QTY
  314. , B.ADD_PRICE
  315. , B.SOLDOUT_YN
  316. , B.DISP_ORD
  317. , B.DISP_YN
  318. , A.ERP_STOCK_LINK_YN
  319. , B.REG_NO
  320. , B.REG_DT
  321. , B.UPD_NO
  322. , B.UPD_DT
  323. FROM TB_GOODS A, TB_OPTION B
  324. WHERE A.ERP_STOCK_LINK_YN = 'Y'
  325. AND A.SELF_GOODS_YN ='Y'
  326. AND A.GOODS_CD = B.GOODS_CD
  327. ;
  328. -- TB_OPTION_SYNC_TMP => TB_OPTION_SYNC 변경적용
  329. /* TsbGoods.saveGoodsOptionSyncSync */
  330. UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
  331. , OPT_CD
  332. , CURR_STOCK_QTY
  333. , STORE_STOCK_QTY
  334. , ERP_STOCK_LINK_YN
  335. FROM TB_OPTION_SYNC_TMP
  336. WHERE ERP_STOCK_LINK_YN = 'Y'
  337. ) B
  338. SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
  339. , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
  340. , A.UPD_NO = 99999
  341. , A.UPD_DT = NOW()
  342. WHERE A.GOODS_CD = B.GOODS_CD
  343. AND A.OPT_CD = B.OPT_CD
  344. <![CDATA[
  345. AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
  346. OR
  347. A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
  348. )
  349. ]]>
  350. ;
  351. -- WMS, 매장별 최대 주문수량 적용 == > 작업합시다.
  352. -- TB_SHOP_STOCK과 TB_OPTION_SYNC.CURR_STOCK_QTY 비교하여 STORE_MAX_QTY에 적용
  353. /* TsbGoods.updateGoodsOptionSyncSync */
  354. UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
  355. , OPT_CD
  356. , STORE_MAX_QTY
  357. FROM (
  358. SELECT GOODS_CD
  359. , OPT_CD
  360. , GREATEST(CURR_STOCK_QTY, QT_STOCK) AS STORE_MAX_QTY
  361. FROM (
  362. SELECT OS.GOODS_CD
  363. , OS.OPT_CD
  364. , GREATEST(OS.CURR_STOCK_QTY, 0) AS CURR_STOCK_QTY
  365. , GREATEST(IFNULL(SS.QT_STOCK, 0), 0) AS QT_STOCK
  366. FROM TB_OPTION_SYNC OS
  367. LEFT OUTER JOIN TB_SHOP_STOCK SS ON OS.GOODS_CD = SS.CD_STYLE
  368. AND OS.OPT_CD = SS.OPT_CD
  369. WHERE OS.ERP_STOCK_LINK_YN = 'Y'
  370. ) Z
  371. ) Y WHERE STORE_MAX_QTY > 0
  372. ) B
  373. SET A.STORE_MAX_QTY = B.STORE_MAX_QTY
  374. , A.UPD_NO = 99999
  375. , A.UPD_DT = NOW()
  376. WHERE A.GOODS_CD = B.GOODS_CD
  377. AND A.OPT_CD = B.OPT_CD
  378. <![CDATA[
  379. AND A.STORE_MAX_QTY <> B.STORE_MAX_QTY
  380. ]]>
  381. ;
  382. -- TB_OPTION_SYNC => TB_OPTION 적용
  383. UPDATE TB_OPTION A, (SELECT GOODS_CD
  384. , OPT_CD
  385. , CURR_STOCK_QTY
  386. , STORE_STOCK_QTY
  387. , STORE_MAX_QTY
  388. , ERP_STOCK_LINK_YN
  389. FROM TB_OPTION_SYNC
  390. WHERE ERP_STOCK_LINK_YN = 'Y'
  391. ) B
  392. SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
  393. , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
  394. , A.STORE_MAX_QTY = B.STORE_MAX_QTY
  395. , A.UPD_NO = 99999
  396. , A.UPD_DT = NOW()
  397. WHERE A.GOODS_CD = B.GOODS_CD
  398. AND A.OPT_CD = B.OPT_CD
  399. <![CDATA[
  400. AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
  401. OR
  402. A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
  403. OR
  404. A.STORE_MAX_QTY <> B.STORE_MAX_QTY
  405. )
  406. ]]>
  407. ;
  408. // 자사상품중 주문상세상태가 입금대기, 결제완료, 교환대기 건은 TB_SELL_QTY 생성
  409. -- TB_SELL_QTY_TEMP 삭제
  410. TRUNCATE TABLE TB_SELL_QTY_TMP;
  411. -- TB_SELL_QTY_TEMP 생성
  412. INSERT INTO TB_SELL_QTY_TMP (
  413. GOODS_CD
  414. , OPT_CD
  415. , SELL_GB
  416. , ORD_DTL_NO
  417. , ORD_CHG_SQ
  418. , AGENT_ORDER_ID
  419. , EXTMALL_ORDER_ID
  420. , SELL_QTY
  421. , REG_NO
  422. , REG_DT
  423. )
  424. SELECT GOODS_CD
  425. , OPT_CD
  426. , SELL_GB
  427. , ORD_DTL_NO
  428. , ORD_CHG_SQ
  429. , AGENT_ORDER_ID
  430. , EXTMALL_ORDER_ID
  431. , SELL_QTY
  432. , REG_NO
  433. , REG_DT
  434. FROM TB_SELL_QTY
  435. ;
  436. -- 초기화
  437. DELETE FROM TB_SELL_QTY;
  438. -- TB_SELL_QTY_TEMP => TB_SELL_QTY 생성
  439. INSERT INTO TB_SELL_QTY (
  440. GOODS_CD
  441. , OPT_CD
  442. , SELL_GB
  443. , ORD_DTL_NO
  444. , ORD_CHG_SQ
  445. , AGENT_ORDER_ID
  446. , EXTMALL_ORDER_ID
  447. , SELL_QTY
  448. , REG_NO
  449. , REG_DT
  450. )
  451. SELECT GOODS_CD
  452. , OPT_CD
  453. , SELL_GB
  454. , ORD_DTL_NO
  455. , ORD_CHG_SQ
  456. , AGENT_ORDER_ID
  457. , EXTMALL_ORDER_ID
  458. , SELL_QTY
  459. , REG_NO
  460. , REG_DT
  461. FROM TB_SELL_QTY_TMP
  462. WHERE ORD_DTL_NO IN (
  463. SELECT OD.ORD_DTL_NO
  464. FROM TB_ORDER_DETAIL OD
  465. , TB_ORDER_DETAIL_ITEM ODI
  466. , TB_GOODS G
  467. WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
  468. AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
  469. AND OD.GOODS_CD = G.GOODS_CD
  470. AND G.SELF_GOODS_YN ='Y'
  471. )
  472. ;
  473. -- TB_ORDER_DETAIL => TB_SELL_QTY 생성
  474. INSERT INTO TB_SELL_QTY (
  475. GOODS_CD
  476. , OPT_CD
  477. , SELL_GB
  478. , ORD_DTL_NO
  479. , AGENT_ORDER_ID
  480. , EXTMALL_ORDER_ID
  481. , SELL_QTY
  482. , REG_NO
  483. , REG_DT
  484. )
  485. SELECT ITEM_CD
  486. , OPT_CD
  487. , SELL_GB
  488. , ORD_DTL_NO
  489. , AGENT_ORDER_ID
  490. , EXTMALL_ORDER_ID
  491. , SELL_QTY
  492. , 0
  493. , NOW()
  494. FROM (
  495. SELECT ODI.ITEM_CD
  496. , ODI.OPT_CD
  497. , '10' AS SELL_GB -- 주문건
  498. , OD.ORD_DTL_NO
  499. , OD.AGENT_ORDER_ID
  500. , OD.EXTMALL_ORDER_ID
  501. , SUM((OD.ORD_QTY - OD.CNCL_RTN_QTY) * ODI.ITEM_QTY) AS SELL_QTY
  502. FROM TB_ORDER_DETAIL OD
  503. , TB_ORDER_DETAIL_ITEM ODI
  504. WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
  505. AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
  506. AND EXISTS (SELECT 1 FROM TB_OPTION X WHERE X.GOODS_CD = ODI.ITEM_CD AND X.OPT_CD = ODI.OPT_CD)
  507. GROUP BY ODI.ITEM_CD, ODI.OPT_CD, OD.ORD_DTL_NO, OD.AGENT_ORDER_ID, OD.EXTMALL_ORDER_ID
  508. ) A
  509. WHERE NOT EXISTS (SELECT 1
  510. FROM TB_SELL_QTY Y
  511. WHERE Y.GOODS_CD = A.ITEM_CD
  512. AND Y.OPT_CD = A.OPT_CD
  513. AND Y.SELL_GB = A.SELL_GB
  514. AND Y.ORD_DTL_NO = A.ORD_DTL_NO
  515. )
  516. ;