선입선출법을 sql로 풀어보기
이것도 역시 실전에 유용한 sql 퀴즈입니다.
재고자산의 원가 계산방법 중 하나.
재고자산이 출고될 때 장부상 먼저 입고된 것으로 되어있는 상품부터 출고된 것으로 간주하는 방법,
한마디로 먼저 들어온 물건이 먼저 팔린 것으로 치는 방법이다.
예를 들어 다음과 같은 입고가 있는 경우
1 상품 입고 100개 단가 300원
2 상품 입고 120개 단가 320원
만약 상품이 50개 출고가 되는 경우 50 * 300 = 1500 의 출고가가 결정이 되며
추가로 상품이 100개가 출고가 되는 경우 50 * 300 + 50 * 320 = 31000 의 출고가가 결정이 된다.
다음과 같은 데이타가 주어져 있다고 할 때
with base_table as
(
select '1' 상품코드 , 1 순번 , '입고' 구분 , 1000 수량 , 100 단가 from dual
union all select '1' 상품코드 , 2 순번 , '출고' 구분 , 800 수량 , null 단가 from dual
union all select '1' 상품코드 , 3 순번 , '입고' 구분 , 200 수량 , 95 단가 from dual
union all select '1' 상품코드 , 4 순번 , '입고' 구분 , 1900 수량 , 120 단가 from dual
union all select '1' 상품코드 , 5 순번 , '출고' 구분 , 800 수량 , null 단가 from dual
union all select '1' 상품코드 , 6 순번 , '입고' 구분 , 300 수량 , 130 단가 from dual
union all select '1' 상품코드 , 7 순번 , '출고' 구분 , 600 수량 , null 단가 from dual
union all select '1' 상품코드 , 8 순번 , '입고' 구분 , 400 수량 , 140 단가 from dual
union all select '1' 상품코드 , 9 순번 , '입고' 구분 , 300 수량 , 130 단가 from dual
union all select '1' 상품코드 ,10 순번 , '출고' 구분 , 1000 수량 , null 단가 from dual
union all select '1' 상품코드 ,11 순번 , '출고' 구분 , 800 수량 , null 단가 from dual
)
각각의 출고에 대하여 출고 금액을 계산하는 sql을 만드시면 됩니다.
순번, 출고단가,출고금액
2 , 100, 80000
5 , 108.75, 87000
7 , 120,72000
10, 121,121000
11, 134.4444, 121000
|