database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41709 게시물 읽기
No. 41709
행간계산 질문드립니다.
작성자
노트르담
작성일
2019-04-17 16:57
조회수
3,052

3

4.5

6

11

3

 

이렇게 로우가 있고 11이란 값이 주어지면

 

0       3차감

0    4.5차감

2.5       3.5차감

11

3

 

이렇게 로우가 나오게 하고 싶은데

FOR문말고 하나의 SELECT 쿼리로 하는 방법 없을까요?

이 글에 대한 댓글이 총 1건 있습니다.

WITH t AS
(
SELECT 1 rn, 3.0 v FROM dual
UNION ALL SELECT 2,  4.5 FROM dual
UNION ALL SELECT 3,  6.0 FROM dual
UNION ALL SELECT 4, 11.0 FROM dual
UNION ALL SELECT 5,  3.0 FROM dual
)
SELECT x, rn, v
     , CASE WHEN s     < x THEN v
            WHEN s - v < x THEN x - s + v
            ELSE 0 END use_v
     , CASE WHEN s     < x THEN 0
            WHEN s - v < x THEN s - x
            ELSE v END rem_v
  FROM (SELECT 11 x
             , rn
             , v
             , SUM(v) OVER(ORDER BY rn) s
          FROM t
        )
;

마농(manon94)님이 2019-04-17 18:00에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41712partition by 문의 [3]
량디
2019-04-22
3046
41711갑자기 연결이 안 되네요...
신승익
2019-04-18
2933
41710DECODE나 CASE문 관련 문의 [1]
group
2019-04-18
2925
41709행간계산 질문드립니다. [1]
노트르담
2019-04-17
3052
41708오라클 프로시져 순차적으로 쿼리 수행 관련 문의드립니다.. [3]
2019-04-11
3221
41707TYPE OBJECT 컬렉션의 변수 갯수 [2]
haka
2019-04-10
3206
41706DB는 오라클 비주얼툴은 dBeaver/Flyspeed입니다. [1]
신승익
2019-04-03
3921
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다