728x90
반응형
양 비율로 배분할때 마지막 DATA에 나머지 양 계산해서 넣는 쿼리
1. 변수
- :V_DIV_QTY : 배분 전체양
2. ROW_NUMBER로 SEQ를 구하고, 전체 ROW 수로 LAST_SEQ를 구해서 SEQ와 LAST_SEQ가 같을 경우, 즉 마지막 ROW일 경우
전체 양에서 마지막ROW 이전의 합계양을 빼서 나머지 양을 마지막 ROW 값으로 조회한다.
SELECT TT1.*
, DECODE(SEQ,LAST_SEQ, :V_DIV_QTY - SUM(ALOC_QTY) OVER()+ALOC_QTY,ALOC_QTY) AS ALOC_QTY
FROM
(
SELECT
T1.*
,FLOOR(:V_DIV_QTY * A_QTY/SUM(A_QTY) OVER()) AS ALOC_QTY
,ROW_NUMBER() OVER(ORDER BY KEY1,KEY2) AS SEQ
,COUNT(*) OVER() AS LAST_SEQ
FROM (
SELECT
KEY1,KEY2, A_QTY
FROM TB_AA WHERE KEY3='AA'
) T1
) TT1
728x90
반응형
'SQL > Query' 카테고리의 다른 글
비슷한 테이블 매크로 생성 (0) | 2014.06.11 |
---|---|
조인 결과로 테이블 UPDATE하기 (0) | 2014.06.11 |
페이징 쿼리문 (0) | 2014.06.11 |
Db Lock 조회및 세션 kill하기 (0) | 2014.06.11 |
[데이터베이스] UPDATE, DELETE 시 조회 조건들로 조건 만들기 (0) | 2014.06.11 |
오라클 SELECT결과로 UPDATE 하기 (0) | 2014.06.11 |
[오라클쿼리] 월을 입력하여 일짜 리스트 row 만들기 (0) | 2014.06.11 |
[비교] 페이징 등의 MSSQL TOP, MYSQL LIMIT, ORACLE ROWNUM (0) | 2014.06.11 |