여러행에서 수량만큼빼고 싶습니다. 0 2 812

by 혜당화 [SQL Query] [2017.02.06 12:53:50]


제품번호 수량 키값
a0001 60 1
a0001 12 2
a0001 60 3


와 같이 데이터가 있습니다.

 

사용자는 전체합계인 132개 데이터가 보이고 70개만 이동시키려 합니다.

70수량 입력후 저장을 누르면 해당 제품번호 를 기준으로 70개에 수량이 맞춰지거나

최대한 가까운 값의 행을 2개 뽑으려고 합니다.

혹시 좋은 방법이 있을까요?

 

by jkson [2017.02.06 13:25:57]
with t as
(
select 'a0001' cd, 60 cnt, 1 ky from dual union all 
select 'a0001' cd, 12 cnt, 2 ky from dual union all 
select 'a0001' cd, 60 cnt, 3 ky from dual
)
select
*
  from
    (
    select cd, cnt, ky, sum(cnt) over(order by ky) cntsum
      from t
    )
  where cntsum - cnt <= 70

 


by 마농 [2017.02.06 13:56:14]

선입선출 방식이라면?
  - jkson 님 방식대로 조회하시면 되구요.
최적의 해를 구하는 방식이라면?
  - 상당히 까다로울 듯 하네요.
  - 알파고가 필요할 듯.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입