[ Oracle - 금액배분 후 남은 잔여분 재일 큰 거래처에 가감 ]
--문제 : 거래처 구분별로 100,000만원을 각 거래처에 배분하여 인센티브를 지급하려고 한다.
-- 단, 배분시 매출액대비 지급율을 계산하여 인센티브를 지급하는데
-- 거래처 구분별로 100,000만원이 넘어가거나, 남을 경우 제일 많이 지급되는 거래처에서 가감한다.
[ Oracle - 금액배분 후 남은 잔여분 재일 큰 거래처에 가감 ]
--문제 : 거래처 구분별로 100,000만원을 각 거래처에 배분하여 인센티브를 지급하려고 한다.
-- 단, 배분시 매출액대비 지급율을 계산하여 인센티브를 지급하는데
-- 거래처 구분별로 100,000만원이 넘어가거나, 남을 경우 제일 많이 지급되는 거래처에서 가감한다.
[ Oracle- 자료 복제 기본 ]
--http://www.gurubee.net/article/55635#comment_116470
--http://rwijk.blogspot.kr/2007/11/interval-based-row-generation.html
[ Oracle - 순차적으로 누적하기9 ]
일별 월누적매출 구하기
실 데이터는 <표1-실데이터>처럼 존재하며, <표2-결과>와 같은 결과 데이터를 조회
<표1-실데이터>
기준일자 |
코드 |
금액 |
2009-01-01 |
A |
100 |
2009-01-01 |
B |
200 |
2009-01-02 |
A |
150 |
2009-01-02 |
B |
200 |
2009-01-02 |
C |
100 |
2009-01-03 |
A |
300 |
2009-01-03 |
B |
100 |
<표2-결과>
기준일자 |
코드 |
금액 |
누적금액 |
2009-01-01 |
A |
100 |
100 |
2009-01-01 |
B |
200 |
200 |
2009-01-02 |
A |
150 |
250 |
2009-01-02 |
B |
200 |
400 |
2009-01-02 |
C |
100 |
100 |
2009-01-03 |
A |
300 |
550 |
2009-01-03 |
B |
100 |
500 |
2009-01-03 |
C |
100 |
100 |
Oracle - 순차적으로 누적하기8 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기7 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기6 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기8 ]
Oracle - 순차적으로 누적하기9 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기7 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기6 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기7 ]
그룹코드 | LOT | 걸린시간(NUMBER) | 시작시간 (DATE) |
ECOMP01 | 6230394 | 0.4 | 2010-09-29 15:43 |
ECOMP01 | 6229155 | 0.14 | |
ECOMP01 | 6229177 | 0.02 | |
ECOMP01 | 6230479 | 0.41 | |
ECOMP01 | 6230694 | 0.02 | |
ECOMP01 | 6230487 | 0.16 | |
ECOMP01 | 6230501 | 0.03 | |
ECOMP01 | 6231286 | 0.07 | |
ECOMP01 | 6230552 | 0.81 | |
ECOMP02 | 6228735 | 0.17 | 2010-10-01 19:18 |
ECOMP02 | 6228948 | 1.33 | |
ECOMP02 | 6228949 | 1.33 | |
ECOMP02 | 6230272 | 0.67 | |
ECOMP02 | 6230274 | 0.67 | |
ECOMP02 | 6230275 | 0.67 | |
ECOMP02 | 6230273 | 2.67 | |
ECOMP02 | 6230276 | 1.33 | |
ECOMP02 | 6230277 | 3.33 | |
ECOMP02 | 6230817 | 0.67 | |
ECOMP02 | 6230819 | 0.67 |
위 테이블과 같은 데이터 구조에서
시작시간의 빈값에 순차적으로 시작시간 + 걸린시간값이 그룹코드별로 들어가 있는 sql
Oracle - 순차적으로 누적하기9 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기8 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기6 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기6 ]
모 | 자 |
A | B |
B | C |
B | D |
A | E |
A | ||
B | ||
C | ||
D | ||
E |
C | 1000 |
D | 2000 |
E | 5000 |
A | 8000 | ||
B | 3000 | ||
C | 1000 | ||
D | 2000 | ||
E | 5000 |
Oracle - 순차적으로 누적하기8 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기7 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기3 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기5 ]
Oracle - 순차적으로 누적하기7 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기6 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기3 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기1 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기4 ]
with t as(
select '20120502' dat, '10001' lotno, 21120 inp_qty, 0 god_qty from dual union all
select '20120505' dat, '10001' lotno, 21120 inp_qty, 7000 god_qty from dual union all
select '20120507' dat, '10001' lotno, 0 inp_qty, 13000 god_qty from dual
)
select * from t
DAT LOTNO INP_QTY GOD_QTY
-------------------------------------------------------------
20120502 10001 21120 0
20120505 10001 21120 7000 --> inp_qty - god_qty = 14120
20120507 10001 14120 13000
Oracle - 순차적으로 누적하기6 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기3 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기1 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기2 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기3 ]
Date Code Amt
20120701 1111 1000
20120701 1112 2000
20120702 data 없음
20120703 1111 3000
20120704 1112 5000
20120704 3333 1000
20120705 data 없음
결과: 20120705 기준 조회
Date Code Amt
20120701 1111 1000
20120701 1112 2000
20120702 1111 1000
20120702 1112 2000
20120703 1111 4000
20120703 1112 2000
20120704 1111 4000
20120704 1112 7000
20120704 3333 1000
20120705 1111 4000
20120705 1112 7000
20120705 3333 1000
.
.
.
위와 같은 결과를 얻고 싶습니다. (1일 부터 해당일자 까지 누적 합계, 1, 1~2, 1~3, 1~4, 1~5일 이런식으로 한달치 누적합계)
특정일자에 data가 없으면 전날 까지의 누적 합계가 그 날짜의 합계가됨.
Oracle - 순차적으로 누적하기5 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기1 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기2 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기0 (0) | 2017.01.19 |
[ Oracle - 순차적으로 누적하기1 ]
<RAW 데이터>
DATE | BOH | OUT | EOH |
20120420 | 200 | 10 | 190 |
20120625 | 190 | 40 | 150 |
20120810 | 150 | 20 | 130 |
20120825 | 130 | 50 | 80 |
20120914 | 80 | 5 | 75 |
20121006 | 75 | 20 | 55 |
20121016 | 55 | 10 | 45 |
DATE | STOCKQTY | OUTQTY | SUMQTY |
201206 | 150 | 40 | 50 |
201207 | 150 | 0 | 40 |
201208 | 130 | 70 | 110 |
201209 | 80 | 5 | 75 |
201210 | 55 | 30 | 105 |
일자별로 사용량이 기록된 RAW 데이터가 있습니다.
월별 재고, 월별 사용량, 해당월 포함 직전 2개월 사용량을 구하는 것 입니다.
BOH - 기초재고
OUT - 사용량
EOH - 기말재고
SUM - 직전 2개월 사용량(해당월 포함)
6월 결과 데이터 SUM 값은 4월, 5월, 6월 사용량입니다.
결과 데이터는 6월부터 보여 주지만 SUM 값은 RAW 데이터 중 4월, 5월 데이터를 잡아와야 합니다.
Oracle - 순차적으로 누적하기4 (0) | 2017.01.19 |
---|---|
Oracle - 순차적으로 누적하기3 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기2 (0) | 2017.01.19 |
Oracle - 순차적으로 누적하기0 (0) | 2017.01.19 |
Oracle - 순차적으로 차감하기3 (0) | 2017.01.19 |