쿼리문 질문입니다. 0 1 1,734

by 정대림 [2008.05.22 16:37:12]


현재 테이블은 data 테이블이 있고요

한개 테이블에서 세가지 값을 비교하고 연산하는 쿼리입니다.

select a.kftc_date "날짜", a.count,"신청건수" a.amount"신청금액", b.count"초과건수" b.amount"초과금액", c.count, c"오류건수".amount"오류금액", a.amount-nvl(b.amount,0)-c.amount"정상금액"
from
(select kftc_date, count, amount from tbl_kftc_data
where code = 'pm_aplc') a,
(select kftc_date, count, amount from tbl_kftc_data
where code = 'pm_over') b,
(select kftc_date, count, amount from tbl_kftc_data
where code = 'pm_rst') c
where a.kftc_date = b.kftc_date(+)
and a.kftc_date = c.kftc_date
order by 1;

이쿼리인데요 내용을 보면. 특정 일자별로 신청 금액, 초과금액 그리고 오류 금액을 더해서요

정상금액을 구하는 쿼리입니다.

여기까지는 정산으로 나오는데요 문제 제가 구하고 싶은건

한달에 4번의 동일 작업이 있습니다.

이작업을 누적을 시키고 싶습니다.

예들 들면 1월에 1회 10만 2회 15만 3회 10만 4회 5만이면.

1회 10만 2회 25만 3회 35만 4회 40만 이렇게 마지막에 출력을 해주고 싶습니다.

당연히 월이 바뀌면 초기화 되는것으로요;

이게 불가능한건가요? 제가 고민은 하고 잇는데 실력이 없어서 도저히 모르겟습니다.

기분 좋은 하루 되시길 바랍니다.

by finecomp [2008.05.22 17:21:39]
8i 이상 버전에서 누계는 SUM() OVER(ORDER BY 년월) AS 누계
처럼 분석함수를 사용하면 간단히 해결됩니다.
자세한 함수의 사용법은 상단 검색란등에서 검색 해 보세요...;

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