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 39240 게시물 읽기
No. 39240
쿼리 질문입니다 help~
작성자
물고기
작성일
2012-01-17 21:43ⓒ
2012-01-17 21:44ⓜ
조회수
3,569

아래 샘플 테이블 두개을 예를 들었습니다.
(
  select 'a' item , 30 qty from dual
  union all
  select 'b' item, 50 qty from dual
) tableA

(
  select 'a' item , 20 qty, '20110101' cdate from dual
  union all
  select 'a' item , 30 qty, '20110102' cdate from dual
  union all
  select 'a' item , 30 qty, '20110103' cdate from dual
  union all
  select 'b' item , 20 qty, '20110101' cdate from dual
  union all
  select 'b' item , 30 qty, '20110102' cdate from dual
) tableB

tableB를 기준으로 tableA를 빼는 개념인데요
예를 들어 item 'a'의 경우 30 qty를 tableB의 'a'들에서 빼는데요
날짜가 가장 이전꺼 부터 빼 나갑니다
처음에 20을 빼고 다음 30에서 나머지 10을 빼면 20이 남는거죠
따라서 실제 원하는 결과는
'a', 20, '20110102'
'a', 30, '20110103'
입니다. ( b는 50 떨어져서 나오지 않음)

쿼리는 어떻게 해야 할까요
6만건정도 입니다

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

WITH tableA AS
(
SELECT 'a' item, 30 qty FROM dual
UNION ALL SELECT 'b', 50 FROM dual
)
, tableB AS
(
SELECT 'a' item, 20 qty, '20120101' cdate FROM dual
UNION ALL SELECT 'a', 30, '20120102' FROM dual
UNION ALL SELECT 'a', 30, '20120103' FROM dual
UNION ALL SELECT 'b', 20, '20120101' FROM dual
UNION ALL SELECT 'b', 30, '20120102' FROM dual
)
SELECT b.item
     , LEAST(b.qty, s - a.qty) qty
     , b.cdate
  FROM tableA a
     , (SELECT item, qty, cdate
             , SUM(qty) OVER(PARTITION BY item ORDER BY cdate)
          FROM tableB
        ) b
 WHERE a.item = b.item
   AND b.s > a.qty
;

마농(manon94)님이 2012-01-18 08:52에 작성한 댓글입니다.

감사합니다. 마농님

물고기님이 2012-01-19 10:56에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39243HSODBC로 여러 MS-SQL Server 연동이 가능한가요?
허진우
2012-01-18
3213
39242고수님들의 주옥같은 도움 절실히 필요합니다.도와주세요...ㅠㅠ [5]
일쌍다반사
2012-01-18
4512
39241procedure, package 사용용도 [1]
나재호
2012-01-18
3658
39240쿼리 질문입니다 help~ [2]
물고기
2012-01-17
3569
39239IN 안의 조건 컨트롤 문의드립니다. [4]
2012-01-17
3860
3923811g deffered_segment_creation 부분을 모르겠습니다. [1]
한근희
2012-01-17
3716
39235덤프가 다 안받아 짐니다. 도와주세요. [1]
한근희
2012-01-17
3642
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다