์๊ธ๋งค์ถํ ์ธ ๋ก์ง
ํ๋ฉด: ์์ ์ ๋ณด โ ์๊ธ๊ด๋ฆฌ โ ์๊ธ์์ธ๋ฑ๋ก โ ์๊ธ๋งค์ถํ ์ธ ์ฒ๋ฆฌ ๋์ ๋ ์: ์ ๋ฌด ๋ถ์ ยท ์ด์ ๋ด๋น ์กฐ์ฌ์ผ: 2026-07-10 ยท ๋ฐฉ๋ฒ: ์ด ์๋ฒ โ VPN โ ๋ฐ์ฝ๋ MSSQL โ ์ฐ๊ฒฐ์๋ฒ
UNION_ERPโ Oracle ์ฝ๊ธฐ ์ ์ฉ ์กฐํ
๊ฒฐ๋ก โ ํํ ๊ณต์
์๊ธํ ์ธ์ก = TRUNC( ์ ์ ์ค์๊ธ ํฉ๊ณ ร 0.03 )
- ์ ์ ์ค์๊ธ ํฉ๊ณ = ๊ทธ ๊ฑฐ๋์ฒ์ ์ ์ ์๊ธ ์ค ๊ตฌ๋ถ
10(ํ๊ธ)15(๋ณดํต์๊ธ)20(์ด์)30(์นด๋) ์ ํฉ - 3% ๊ณ ์ , ์๋จ์ ์ ์ฌ
- ์ต์ ์ด(๋๊ฐ 4~10์ผ)์ ์๊ธ๊ตฌ๋ถ
35(์๊ธํ ์ธ) ์ ํ ํ ๊ฑด์ผ๋ก ๋ฑ๋ก๋๋ค - ์ด ์ ํ๋ ๋จ๋ ํ์ด๋ค. ๊ฐ์ ๋ ๊ฐ์ ๊ฑฐ๋์ฒ์ ์ค์๊ธ ํ๊ณผ ์ง์ง์ด ์์ง ์๋ค
๊ฒ์ฆ (2026๋ ์ ์)
์ ์ ์ค์๊ธ ร 3% ์ ์ฌ ๋ก ๊ณ์ฐํ ๊ฐ๊ณผ ์ค์ ๋ฑ๋ก์ก์ ๋์กฐํ๋ค.
| ์ | ์ด ๊ฑด์ | ๊ณต์ ์ผ์น | ์ผ์น์จ |
|---|---|---|---|
| 2026-01 | 69 | 68 | 98.6% |
| 2026-02 | 69 | 65 | 94.2% |
| 2026-03 | 58 | 57 | 98.3% |
| 2026-04 | 52 | 52 | 100% |
| 2026-05 | 53 | 52 | 98.1% |
| 2026-06 | 56 | 56 | 100% |
| ํฉ๊ณ | 357 | 350 | 98.0% |
์ ์ฌ๊น์ง ํ์ธ๋๋ค. ์ด๋ ๊ฑฐ๋์ฒ๋ ์ ์ ์๊ธ 4,924,920 ร 3% = 147,747.6 โ ๋ฑ๋ก์ก 147,747.
๋ฒ์ด๋๋ ๊ฑด (7๊ฑด / 357๊ฑด) โ ๋๋ถ๋ถ ๋ฐ๋ฆฐ ๋ฌ์ ๋ชฐ์์ ์ฒ๋ฆฌํ ๊ฒ
์์ธ๋ฑ๋ก ์ด๋ผ๋ ํ๋ฉด ์ด๋ฆ ๊ทธ๋๋ก๋ค. ์์จ์ 3% ๊ทธ๋๋ก์ด๊ณ , ๊ณฑํ๋ ๊ธฐ๊ฐ์ด ์ ์ ํ ๋ฌ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค.
7๊ฑด์ ๊ฐ๋ณ ์ถ์ ํ๋ค.
| ๊ฑด | ์ค์ ๋น์จ | ์ถ์ ๊ฒฐ๊ณผ |
|---|---|---|
| 2๊ฑด | 7.000% ยท 6.028% | ์ ์ + ์ ์ ์ ๋ ๋ฌ์น ํฉ๊ณ ร 3% ๋ก ์ ํํ ์ผ์น. ํ ๋ฌ์ ๊ฑด๋๋ฐ๊ณ ๋ชฐ์์ ๋ฑ๋กํ๋ค |
| 1๊ฑด | 1.500% | ์ ์์ด ์๋๋ผ 3๊ฐ์ ์ ์๊ธ์ก ร 3% ์ ์ ํํ ์ผ์น. ๋ ๋ฌ ๋ฐ๋ฆฐ ์ฒ๋ฆฌ |
| 3๊ฑด | 2.843% ยท 2.008% ยท 0.138% | ์ด๋ค ๊ธฐ๊ฐ ์กฐํฉ์ผ๋ก๋ ์ฌํ๋์ง ์๋๋ค. ๋ด๋น์ ์กฐ์ |
| 1๊ฑด | โ | ์ ์ ์๊ธ์ด ์์ ์๋๋ฐ ํ ์ธ๋ง ๋ฑ๋ก |
๋ ๋ฌ์น ํฉ์ฐ์ ์: ์ ์ ์ 4,000,000 + ์ ์ 3,000,000 = 7,000,000 ร 3% = 210,000 (์ค์ ๋ฑ๋ก์ก๊ณผ ์ผ์น). ์ ์ฌ๋ ํจ๊ป ํ์ธ๋๋ค: ๋ ๋ฌ ํฉ 8,793,930 ร 3% = 263,817.9 โ ๋ฑ๋ก์ก 263,817.
์ฆ 357๊ฑด ์ค 353๊ฑด(98.9%)์ด โ์ด๋ ๊ธฐ๊ฐ ร 3% ์ ์ฌโ๋ก ์ค๋ช ๋๋ค. ๋๋จธ์ง 4๊ฑด๋ง ์ฌ๋์ด ์ ํ ๊ฐ์ด๋ค.
์ด๋ ๋ฌ์ ํฉ์น ์ง, ์ธ์ ์กฐ์ ํ ์ง๋ ์์คํ ์ด ๊ฐ์ ํ์ง ์๋๋ค. ํ๋ฉด์์ ์ฌ๋์ด ์ ํ๋ค.
๊ณ์ฐ์ ์ด๋์ ์ผ์ด๋๋๊ฐ โ ๋ฒค๋ ํด๋ผ์ด์ธํธ
์ค๋ผํด์ V$SQL(์ต๊ทผ ์คํ๋ SQL ์บ์)์ ์กฐํํด ํ์ธํ๋ค.
COLLECT_ORDER์ ํ์ ๋ฃ๋ ๋ฌธ์ฅ์ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ด ์ง์ ์คํํ๋INSERT๋ค. ๊ฐ์ ์ ๋ถ ๋ฐ์ธ๋ ๋ณ์๋ก ๋์ด์จ๋ค โ ์ฆ ๊ธ์ก์ด ์ด๋ฏธ ๊ณ์ฐ๋ ์ฑ๋ก ๋์ฐฉํ๋ค.- ์ด
INSERT๋ฅผ ๊ฐ์ธ๋ ํ๋ก์์ ๊ฐ ์๋ค. ์ ์ฒด ์คํค๋ง(KUPยทSYSยทSYSTEM๋ฑ)์ PL/SQL ์์ค์์COLLECT_ORDER์ INSERT ํ๋ ๊ฐ์ฒด๋SP_COLLECT_DELIV(์๊ธ๊ตฌ๋ถ ๋ค๋ฆ, ์์จ 1%) ํ๋๋ฟ์ด๋ค. - ์์ค ์ ๋ฌธ ๊ฒ์์์
0.03ยท3/100ยทDISCOUNT_RATE๋ ์๊ธ๊ณผ ๋ฌด๊ดํ ๊ณณ์์๋ง ๋์จ๋ค (์ฐ๋ง์ ์ฐ ์๋ฃ๋น 3%, ๋๋งค ๊ด๋ จ 1%).
๋ฐ๋ผ์ 3% ์์จ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กด์ฌํ์ง ์๋๋ค. ํ๋ฉด์ โ์๋ ๊ณ์ฐโ ๋ฒํผ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ณ์ฐํ๋ค. ์์จ์ ๋ฐ๊พธ๋ ค๋ฉด DB ๊ฐ ์๋๋ผ ๋ฒค๋ ํ๋ก๊ทธ๋จ์ ๊ณ ์ณ์ผ ํ๋ค.
๋จ์ ํ์ธ ๋ฐฉ๋ฒ: ๋ด๋น์๊ฐ ๊ทธ ๋ฒํผ์ ๋๋ฅด๋ ์๊ฐ
V$SQL์ ์กฐํํ๋ฉด, ๋ฒํผ์ด ์ ์ ์๊ธ์ ์ด๋ป๊ฒ ์ง๊ณํ๋์ง ๊ทธ SELECT ๋ฌธ์ฅ์ ๊ทธ๋๋ก ๋ณผ ์ ์๋ค. ์กฐ์ฌ ์์ ์๋ ์ต๊ทผ ์คํ ๊ธฐ๋ก์ด ์บ์์ ์์๋ค.
๊ณ์ฐ์ ์ฝ๋์ ์๋ค โ ํ๋ฉด์์ ํ์ ๋์ด ๋ค์ด์จ๋ค
KUP.SP_COLLECT ๋ ์๊ธ ๊ตฌ๋ถ๋ณ๋ก ๋ถ๊ฐ๋ง ํ๋ค(DECODE ๋ก ๊ณ์ ๋ถ๋ฅ). ํ ์ธ์ก์ ๊ณ์ฐํ์ง ์๋๋ค.
,DECODE(CUR_COLLECT.COLLECT_CLASS, '35', CUR_COLLECT.COLLECT_AMT ...) -- ์๊ธ/์๊ธํ ์ธ
,DECODE(CUR_COLLECT.COLLECT_CLASS, '40', CUR_COLLECT.COLLECT_AMT, 0) -- ๋งค์ถํ ์ธ(๊ฑฐ๋์ฒ)
์ฆ 3% ์์จ์ ์ด๋ ํ๋ก์์ ์๋ ์ ์ฅ๋ผ ์์ง ์๋ค. ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ(ํ๋ฉด)์ด ๊ณ์ฐํด์ ๊ธ์ก์
ํ์ ํ ๋ค COLLECT_ORDER ์ ๋ฃ๋๋ค. ์์จ์ ๋ฐ๊พธ๋ ค๋ฉด DB ๊ฐ ์๋๋ผ ๋ฒค๋ ํ๋ก๊ทธ๋จ์ ๊ณ ์ณ์ผ ํ๋ค.
์๊ธ๊ตฌ๋ถ ์ฝ๋ โ ํ ์ด๋ธ ๋ช ์ธ์ ์ฝ๋ ์ฃผ์์ด ์ด๊ธ๋๋ค
collection.mdx ์ S028 ์ค๋ช
๊ณผ SP_COLLECT ์ ์ค์ ์ฃผ์์ด ๋ค๋ฅด๋ค. ์ฝ๋๋ฅผ ์ ๋ขฐํ๋ค.
| ์ฝ๋ | ํ ์ด๋ธ ๋ช ์ธ(S028) | SP_COLLECT ์ฃผ์ | ์ต๊ทผ ๋ฐ์ดํฐ |
|---|---|---|---|
| 10 | ํ๊ธ | ํ๊ธ | 2018-03 |
| 15 | ๋ณดํต์๊ธ | ๋ณดํต์๊ธ | 2026-07 |
| 20 | ์ด์ | ์ด์ | 2026-07 |
| 30 | ์นด๋ | ์๊ธ/์นด๋ | 2026-07 |
| 35 | (๋ช ์ธ์ ์์) | ์๊ธ/์๊ธํ ์ธ | 2026-06 (ํํ) |
| 38 | โ | ์๊ธ๋งค์ถํ ์ธ์ถ๊ฐ (2011.03) | 2023-09 |
| 40 | ์๊ธํ ์ธ | ๋งค์ถํ ์ธ(๊ฑฐ๋์ฒ) | 2025-12 |
| 50 | ๋ฏธ๊ฒฐ์๊ธ | ์ ๊ธ์ ๋ฆฌ(๊ฑฐ๋์ฒ) | 2025-06 |
| 60 | ๊ธฐํ๋์ฒด | ํ๋งค์ฅ๋ ค๊ธ(๊ฑฐ๋์ฒ) | 2010-03 |
๋ช ์ธ์ โ40 = ์๊ธํ ์ธโ ์ ๋ฏฟ๊ณ 40๋ฒ ํ์ ๋ค์ง๋ฉด ์๋ฑํ ๊ฒ์ ๋ณธ๋ค. ํํ ์๊ธํ ์ธ์ 35 ๋ค.
๋ํ COLLECT_ORDER.REDUCTION_AMT ยท UNDICS_CODE ์ปฌ๋ผ์ ๋ช
์ธ์ ์ค๋ช
์ด ์์ผ๋ ์ค๋ฐ์ดํฐ๊ฐ ์ ๋ถ NULL ์ด๋ค.
ํ๊ธฐ๋ ์๋๊ณ์ฐ โ SP_ORDER_DISCOUNT
์์ค ์ ๋ฌธ: SP_ORDER_DISCOUNT.sql ยท
๋ ์ง๊ตฌ๊ฐ ๋ฐ๋ณต ๋ฒ์ SP_ORDER_DISCOUNT_LOOP.sql
(์ ์ฅ์ ๊ฒฝ๋ก: public/procedures/. Nextra ๊ฐ content/ ์์ .sql ์ ํ์ด์ง๋ก ํ์ฑํ๋ ค ํด์ ๋ฐ์ ๋๋ค.)
์ด ํ๋ก์์ ๋ ํํ ๋ก์ง์ด ์๋๋ค. ๊ฒฐ๊ณผ ํ
์ด๋ธ COLLECT_ORDER_DISCOUNT ์
2011-01-04 ~ 2013-08-31, 31,533ํ ์ดํ ๋ฐ์ดํฐ๊ฐ ์๋ค. 13๋
์งธ ๋์ง ์๋๋ค.
๊ฐ์ฒด์ LAST_DDL_TIME ์ด 2025-12-31 ๋ก ์ฐํ ์์ผ๋ ์ด๋ ์คํค๋ง ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์ฌ์ปดํ์ผ์ด๋ค.
๋ด์ฉ์ ์กฐ๊ธฐ ์๊ธ ์ธ์ผํฐ๋ธ๋ฅผ ์ฑ๊ถ ๋์ด๋ณ๋ก ์ฐจ๋ฑ ์ง๊ธํ๋ ๊ตฌ์กฐ์๋ค. ์ง๊ธ์ ๋จ์ผ 3% ์ ๋ค๋ฅด๋ค.
- ๋์: ๊ทธ๋ ํ๊ณ์น์ธ๋ ์๊ธ ์ค ๊ตฌ๋ถ
101530. ๊ฑฐ๋์ฒยท๋ถ์ยท๋ด๋น์ยท์ ํต๊ตฌ๋ถ๋ณ ํฉ์ฐ. CREDIT_SALES_DAILY์์ ์ ์ผ ์ค์๊ณ ์ ๋์ด ๊ตฌ๊ฐ๋ณ ๋งค์ถ์ก(31/62/92์ผ ์ด๋ด)์ ์ฝ๋๋ค.- ์ค์๊ณ โค 0 โ ์๊ธ ์ ์ก์ 1.8%.
- ์ค์๊ณ > 0 โ ์๊ธ์ก์ด ์ค๋๋ ์ฑ๊ถ๋ถํฐ ๊ฐ๋ ๊ฒ์ผ๋ก ๋ณด๊ณ ๊ตฌ๊ฐ๋ณ ์์จ ์ ์ฉ:
| ๊ฐ๋ ๋์ | ์์จ |
|---|---|
| 92์ผ ์ด๊ณผ ์๊ณ | 0% |
| 63~92์ผ ๋งค์ถ๋ถ | 0.6% |
| 32~62์ผ ๋งค์ถ๋ถ | 1.2% |
| 31์ผ ์ด๋ด ๋งค์ถ๋ถ | 1.8% |
- ํ ์ธ์ก = ๋์๊ธ์ก ร ์์จ, ์๋จ์ ์ ์ฌ. ๋ถ๊ฐ์ธ = ํ ์ธ์ก รท 10 (์ ์ฌ).
2011~2013 ์คํ ํ์์ ์ญ์ฐํ ์์จ์ด 0.600 / 1.200 / 1.800% ๋ก ์์ค์ ์ผ์นํ๋ค โ ํด์์ ๋ง๊ณ , ๋ค๋ง ์ฐ์ด์ง ์๋๋ค.
๊ฒ์ฆ ์ฟผ๋ฆฌ (์ง์ ๋๋ ค๋ณผ ๊ฒ)
์ด ๋ฌธ์์ ์ฃผ์ฅ์ ๊ทธ๋๋ก ๋ฏฟ์ง ๋ง๊ณ ์ฌํํ๋ผ. ๊ฒ์ดํธ์จ์ด ๊ฒฝ์ ์ฝ๊ธฐ ์ ์ฉ์ด๋ค.
-- 2026๋
์๊ธํ ์ธ(35) ์ด "์ ์ ์ค์๊ธ ร 3% ์ ์ฌ" ์ ๋ง๋์ง ์ ์ ๋์กฐ
SELECT d.YM,
COUNT(*) CNT,
SUM(CASE WHEN ABS(d.DISC - TRUNC(p.PAID * 0.03)) <= 1 THEN 1 ELSE 0 END) MATCH3
FROM (SELECT SUBSTR(COLLECT_DATE,1,6) YM, SALES_CODE, SUM(COLLECT_AMT) DISC
FROM COLLECT_ORDER
WHERE COLLECT_CLASS = '35' AND COLLECT_DATE >= '20260101'
GROUP BY SUBSTR(COLLECT_DATE,1,6), SALES_CODE) d
LEFT JOIN (SELECT SUBSTR(COLLECT_DATE,1,6) YM, SALES_CODE, SUM(COLLECT_AMT) PAID
FROM COLLECT_ORDER
WHERE COLLECT_CLASS IN ('10','15','20','30')
GROUP BY SUBSTR(COLLECT_DATE,1,6), SALES_CODE) p
ON p.SALES_CODE = d.SALES_CODE
AND p.YM = TO_CHAR(ADD_MONTHS(TO_DATE(d.YM,'YYYYMM'), -1), 'YYYYMM')
GROUP BY d.YM ORDER BY d.YM;
ํธ์ถ ๊ฒฝ๋ก(MSSQL ๊ฒ์ดํธ์จ์ด์์):
SELECT * FROM OPENQUERY(UNION_ERP, '<์ ์ฟผ๋ฆฌ๋ฅผ ํ ์ค๋ก, ํ๋ฐ์ดํ๋ ๋ ๊ฐ๋ก>');
์ฐธ๊ณ
CONTRACT_VALUE.CONTRACT_TYPE_2๋ ๋ช ์ธ์ โ๋งค์ถํ ์ธ์์จโ ์ด๋ ๊ฐ ๋ถํฌ๊ฐ 100 ยท 50 ยท 70 ยท 0 ์ผ๋ก ๋ฐฑ๋ถ์จ ์์จ์ด ์๋๋ผ ๋ถ๋ด ๋ฐฐ๋ถ์จ๋ก ๋ณด์ธ๋ค. 3% ์ ๋ฌด๊ดํ๋ค. ์ฝ๋ ๊ณณ:SP_CLOSE_CREDITยทSP_CLOSE_UNDISCยทSP_DELIVERY๊ณ์ด.- ์์ค๋ ERP ๋ฒค๋ ์์ ๋ค. ์ด ์ ์ฅ์์๋ ๋ถ์ ๋ชฉ์ ์ ์ฌ๋ณธ๋ง ๋๋ค.
- ์์์ ์ด ๊ฑฐ๋์ฒ์ฝ๋ยท๊ธ์ก์ ์ค๋ฐ์ดํฐ๋ผ ๋ณธ๋ฌธ์์ ๋ง์คํนํ๋ค.