SELECT A.GJDT,
A.ACNO,
A.EXENO,
MAX(DECODE(A.R - B.R1, 0, RATE)) M,
MAX(DECODE(A.R - B.R1, 1, RATE)) M,
MAX(DECODE(A.R - B.R1, 2, RATE)) M,
MAX(DECODE(A.R - B.R1, 3, RATE)) M,
MAX(DECODE(A.R - B.R1, 4, RATE)) M,
MAX(DECODE(A.R - B.R1, 5, RATE)) M,
MAX(DECODE(A.R - B.R1, 6, RATE)) M,
MAX(DECODE(A.R - B.R1, 7, RATE)) M,
MAX(DECODE(A.R - B.R1, 8, RATE)) M,
MAX(DECODE(A.R - B.R1, 9, RATE)) M
FROM TEST_C, (
SELECT ROWNUM R,
GJDT,
ACNO,
EXENO
FROM TEST_C
WHERE GJDT = '20090220'
GROUP BY GJDT, ACNO, EXENO
) A,
(
SELECT MIN(ROWNUM) R1 ,
GJDT
FROM TEST_C
WHERE GJDT = '20090220'
GROUP BY GJDT )B
GROUP BY A.GJDT, A.ACNO, A.EXENO;
결과 부분.
두번째의 RATE가 나오지 않습니다.
20090220 1001 10 10 11 12 13 14 15 16 17 18 19
20090220 1001 11
---------------------------------------------------------------------------------
SELECT rownum, GJDT, ACNO, EXENO
from TEST_c
GROUP BY rownum,GJDT, ACNO, EXENO
order by rownum
;
상단의쿼리 결과.
1 20090220 1001 10
2 20090220 1001 10
3 20090220 1001 10
4 20090220 1001 10
5 20090220 1001 10
6 20090220 1001 10
7 20090220 1001 10
8 20090220 1001 10
9 20090220 1001 10
10 20090220 1001 10
11 20090220 1001 11
12 20090220 1001 11
13 20090220 1001 11
14 20090220 1001 11
15 20090220 1001 11
16 20090220 1001 11
17 20090220 1001 11
18 20090220 1001 11
19 20090220 1001 11
20 20090220 1001 11
----------------------------------------------
두번째에도 해당 RATE의 결과가 나오도록 하고 싶은데..
ROWNUM의 특성을 잘 몰라서.. 이런 문제가 발생한거 같습니다.
GROUP BY로 하면 ROWNUM이 1-10나오고 다시 1-10까지 나올줄 알았는데..
혹시 다른방법이나, 아니면 ROWNUM으로 나오게 하는 방법 없을까요?
마농님.. 부탁합니다.^^