Q&A

  • query문에서요...
-- "1학기" 첫번째 query내용

SELECT 회원번호 "회원번호",

SUM(학년) "학년",

SUM(총점) "총 점",

SUM(A03월국어) "3월 국어", SUM(A04월국어) "4월 국어",

SUM(A05월국어) "5월 국어", SUM(A06월국어) "6월 국어",

SUM(A07월국어) "7월 국어", SUM(A08월국어) "8월 국어",

SUM(A03월영어) "3월 영어", SUM(A04월영어) "4월 영어",

SUM(A05월영어) "5월 영어", SUM(A06월영어) "6월 영어",

SUM(A07월영어) "7월 영어", SUM(A08월영어) "8월 영어",

SUM(A03월수학) "3월 수학", SUM(A04월수학) "4월 수학",

SUM(A05월수학) "5월 수학", SUM(A06월수학) "6월 수학",

SUM(A07월수학) "7월 수학", SUM(A08월수학) "8월 수학",

SUM(국어횟수) "국어 횟수", SUM(영어횟수) "영어 횟수",

SUM(수학횟수) "수학 횟수",

SUM(국어총점) "국어 총점", SUM(영어총점) "영어 총점",

SUM(수학총점) "수학 총점",

SUM(국어평균) "국어 평균", SUM(영어평균) "영어 평균",

SUM(수학평균) "수학 평균",

SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수) "총횟수",

ROUND(SUM(총점) / (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)), 2) "총평균",

SUM(TOT),

sum(A3국어), sum(A4국어), sum(A5국어), sum(A6국어), sum(A7국어), sum(A8국어),

sum(A3영어), sum(A4영어), sum(A5영어), sum(A6영어), sum(A7영어), sum(A8영어),

sum(A3수학), sum(A4수학), sum(A5수학), sum(A6수학), sum(A7수학), sum(A8수학),

지점 "지점",

M.MEMBER_NAME "NAME",

BU.BUSINESS_NAME "BNAME",

Z.CITY || ' ' || Z.TOWN "TOWN",

DECODE(INSTR(M.DEL_ADDRESS3, ' ', 1, 2), 0, M.DEL_ADDRESS3,

SUBSTR(M.DEL_ADDRESS3, 1, INSTR(M.DEL_ADDRESS3, ' ', 1, 2)) ) "CITY1",

DECODE(INSTR(M.DEL_ADDRESS3, ' ', 3, 2), 0, ' ',

SUBSTR(SUBSTR(M.DEL_ADDRESS3, INSTR(M.DEL_ADDRESS3, ' ', 3, 2), 50),2,50)) "CITY2",



DECODE(INSTR(B.BRANCH_NAME,'지점'), 0, B.BRANCH_NAME,

SUBSTR(B.BRANCH_NAME, 1, INSTR(B.BRANCH_NAME,'지점') - 1)) "지점1"

FROM (

SELECT 지점, 학년, 회원번호,

TRUNC(((DECODE(SIGN(SUM(TOT) - 6), 1, 6, SUM(TOT)) * 4) * 40) / 100, 0) "TOT",

SUM(총점) / COUNT(회원번호) 총점,

SUM(A03월국어) / COUNT(회원번호) A03월국어, SUM(A04월국어) / COUNT(회원번호) A04월국어,

SUM(A05월국어) / COUNT(회원번호) A05월국어, SUM(A06월국어) / COUNT(회원번호) A06월국어,

SUM(A07월국어) / COUNT(회원번호) A07월국어, SUM(A08월국어) / COUNT(회원번호) A08월국어,

SUM(A03월영어) / COUNT(회원번호) A03월영어, SUM(A04월영어) / COUNT(회원번호) A04월영어,

SUM(A05월영어) / COUNT(회원번호) A05월영어, SUM(A06월영어) / COUNT(회원번호) A06월영어,

SUM(A07월영어) / COUNT(회원번호) A07월영어, SUM(A08월영어) / COUNT(회원번호) A08월영어,

SUM(A03월수학) / COUNT(회원번호) A03월수학, SUM(A04월수학) / COUNT(회원번호) A04월수학,

SUM(A05월수학) / COUNT(회원번호) A05월수학, SUM(A06월수학) / COUNT(회원번호) A06월수학,

SUM(A07월수학) / COUNT(회원번호) A07월수학, SUM(A08월수학) / COUNT(회원번호) A08월수학,

SUM(국어횟수) / COUNT(회원번호) 국어횟수,

SUM(영어횟수) / COUNT(회원번호) 영어횟수,

SUM(수학횟수) / COUNT(회원번호) 수학횟수,

SUM(국어총점) / COUNT(회원번호) 국어총점,

SUM(영어총점) / COUNT(회원번호) 영어총점,

SUM(수학총점) / COUNT(회원번호) 수학총점,

SUM(국어평균) / COUNT(회원번호) 국어평균,

SUM(영어평균) / COUNT(회원번호) 영어평균,

SUM(수학평균) / COUNT(회원번호) 수학평균,

SUM(A3국어) / COUNT(회원번호) A3국어, SUM(A4국어) / COUNT(회원번호) A4국어,

SUM(A5국어) / COUNT(회원번호) A5국어, SUM(A6국어) / COUNT(회원번호) A6국어,

SUM(A7국어) / COUNT(회원번호) A7국어, SUM(A8국어) / COUNT(회원번호) A8국어,

SUM(A3영어) / COUNT(회원번호) A3영어, SUM(A4영어) / COUNT(회원번호) A4영어,

SUM(A5영어) / COUNT(회원번호) A5영어, SUM(A6영어) / COUNT(회원번호) A6영어,

SUM(A7영어) / COUNT(회원번호) A7영어, SUM(A8영어) / COUNT(회원번호) A8영어,

SUM(A3수학) / COUNT(회원번호) A3수학, SUM(A4수학) / COUNT(회원번호) A4수학,

SUM(A5수학) / COUNT(회원번호) A5수학, SUM(A6수학) / COUNT(회원번호) A6수학,

SUM(A7수학) / COUNT(회원번호) A7수학, SUM(A8수학) / COUNT(회원번호) A8수학,

MAX(SEQ) SEQ

FROM (

SELECT 지점 "지점",

SUBSTR(구분, 2, 1) "학년",

회원번호 "회원번호",

구독기간 "TOT",

SUM(총점) "총점",

NVL(SUM(A.T_K03), 0) "A03월국어", NVL(SUM(A.T_K04), 0) "A04월국어",

NVL(SUM(A.T_K05), 0) "A05월국어", NVL(SUM(A.T_K06), 0) "A06월국어",

NVL(SUM(A.T_K07), 0) "A07월국어", NVL(SUM(A.T_K08), 0) "A08월국어",

NVL(SUM(A.T_E03), 0) "A03월영어", NVL(SUM(A.T_E04), 0) "A04월영어",

NVL(SUM(A.T_E05), 0) "A05월영어", NVL(SUM(A.T_E06), 0) "A06월영어",

NVL(SUM(A.T_E07), 0) "A07월영어", NVL(SUM(A.T_E08), 0) "A08월영어",

NVL(SUM(A.T_M03), 0) "A03월수학", NVL(SUM(A.T_M04), 0) "A04월수학",

NVL(SUM(A.T_M05), 0) "A05월수학", NVL(SUM(A.T_M06), 0) "A06월수학",

NVL(SUM(A.T_M07), 0) "A07월수학", NVL(SUM(A.T_M08), 0) "A08월수학",

NVL(SUM(A.C_K), 0) "국어횟수", NVL(SUM(A.C_E), 0) "영어횟수",

NVL(SUM(A.C_M), 0) "수학횟수",

NVL(SUM(A.T_K), 0) "국어총점", NVL(SUM(A.T_E), 0) "영어총점",

NVL(SUM(A.T_M), 0) "수학총점",

DECODE(NVL(SUM(A.C_K), 0), 0, 0, ROUND(SUM(A.T_K) / SUM(A.C_K), 1)) "국어평균",

DECODE(NVL(SUM(A.C_E), 0), 0, 0, ROUND(SUM(A.T_E) / SUM(A.C_E), 1)) "영어평균",

DECODE(NVL(SUM(A.C_M), 0), 0, 0, ROUND(SUM(A.T_M) / SUM(A.C_M), 1)) "수학평균",

decode(SUM(A.T_K03), 0, 999, 0) "A3국어", decode(SUM(A.T_K04), 0, 999, 0) "A4국어",

decode(SUM(A.T_K05), 0, 999, 0) "A5국어", decode(SUM(A.T_K06), 0, 999, 0) "A6국어",

decode(SUM(A.T_K07), 0, 999, 0) "A7국어", decode(SUM(A.T_K08), 0, 999, 0) "A8국어",

decode(SUM(A.T_E03), 0, 999, 0) "A3영어", decode(SUM(A.T_E04), 0, 999, 0) "A4영어",

decode(SUM(A.T_E05), 0, 999, 0) "A5영어", decode(SUM(A.T_E06), 0, 999, 0) "A6영어",

decode(SUM(A.T_E07), 0, 999, 0) "A7영어", decode(SUM(A.T_E08), 0, 999, 0) "A8영어",

decode(SUM(A.T_M03), 0, 999, 0) "A3수학", decode(SUM(A.T_M04), 0, 999, 0) "A4수학",

decode(SUM(A.T_M05), 0, 999, 0) "A5수학", decode(SUM(A.T_M06), 0, 999, 0) "A6수학",

decode(SUM(A.T_M07), 0, 999, 0) "A7수학", decode(SUM(A.T_M08), 0, 999, 0) "A8수학",

SEQ

FROM

(SELECT C.BRANCH 지점,

P.MEMBER_ID 회원번호,

DECODE(P.SUBJECT, '10', SUM(MONTHS_BETWEEN(

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*),

'20', SUM(MONTHS_BETWEEN(

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*),

'30', SUM(MONTHS_BETWEEN(

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*)) 구독기간,

P.GBN 구분,

SUM(P.POINT) 총점,

DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K03, /* 3월 */

DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K04, /* 4월 */

DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K05, /* 5월 */

DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K06, /* 6월 */

DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K07, /* 7월 */

DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K08, /* 8월 */

DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E03, /* 3월 */

DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E04, /* 4월 */

DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E05, /* 5월 */

DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E06, /* 6월 */

DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E07, /* 7월 */

DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E08, /* 8월 */

DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M03, /* 3월 */

DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M04, /* 4월 */

DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M05, /* 5월 */

DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M06, /* 6월 */

DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M07, /* 7월 */

DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M08, /* 8월 */

DECODE(P.SUBJECT, '10', COUNT(*)) C_K,

DECODE(P.SUBJECT, '20', COUNT(*)) C_E,

DECODE(P.SUBJECT, '30', COUNT(*)) C_M,

DECODE(P.SUBJECT, '10', SUM(P.POINT)) T_K,

DECODE(P.SUBJECT, '20', SUM(P.POINT)) T_E,

DECODE(P.SUBJECT, '30', SUM(P.POINT)) T_M,

C.SEQ SEQ

FROM G05_POINT P, G02_CONTACT@MIS C

WHERE P.YYMM BETWEEN TO_CHAR(SYSDATE, 'YY') || '03' AND TO_CHAR(SYSDATE, 'YY') || '08'

AND C.SUBSCRIPTION_OPEN <= TO_CHAR(SYSDATE, 'YYYY') || '0801'

AND C.REGULAR_TO >= TO_CHAR(SYSDATE, 'YYYY') || '0301'

AND SUBSTR(C.GBN, 2, 2) = P.GBN

AND C.MEMBER_ID in (

'1999041530', '1999041780', '1999042002', '1999042064', '1999042304', '1999042307', '1999042474', '1999042837', '1999043008', '1999043573', '1999043640', '1999044817', '1999044922', '1999045739', '1999045740','1999045908', '1999050416', '1999057929', '1999060547', '1999060551', '1999064490', '1999065178', '1999065181', '2000000868', '2000004068', '2000009615'

)

AND P.MEMBER_ID in (

'1999041530', '1999041780', '1999042002', '1999042064', '1999042304', '1999042307', '1999042474', '1999042837', '1999043008', '1999043573', '1999043640', '1999044817', '1999044922', '1999045739', '1999045740','1999045908', '1999050416', '1999057929', '1999060547', '1999060551', '1999064490', '1999065178', '1999065181', '2000000868', '2000004068', '2000009615'

)

AND C.BRANCH BETWEEN :MEMA AND :MEMZ

AND P.INSERT_YYMM < TO_CHAR(SYSDATE, 'YYYY') || '0901'

AND C.MEMBER_ID = P.MEMBER_ID

GROUP BY C.BRANCH, P.MEMBER_ID, P.SUBJECT, SUBSTR(P.YYMM,3,2), C.SEQ, P.GBN ) A

GROUP BY 지점, SUBSTR(구분, 2, 1), 회원번호, 구독기간, SEQ)

GROUP BY 지점, 학년, 회원번호

) A, G01_MEMBER@MIS M, G02_CONTACT@MIS C, G90_ZIPCODE@MIS Z, G13_BUSINESS@MIS BU, G92_BRANCH@MIS B

WHERE M.MEMBER_ID = A.회원번호

AND C.MEMBER_ID = A.회원번호

AND M.MEMBER_ID = C.MEMBER_ID

AND C.BRANCH = B.BRANCH

AND C.SEQ = A.SEQ

AND C.PERSONAL_ID = BU.PERSONAL_ID

AND Z.ZIP_CD1 = M.DEL_ZIP_CD1

AND Z.ZIP_CD2 = M.DEL_ZIP_CD2



GROUP BY 지점, 회원번호, M.MEMBER_NAME, BU.BUSINESS_NAME, Z.CITY, Z.TOWN, M.DEL_ADDRESS3, B.BRANCH_NAME

HAVING (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)) >= SUM(TOT)

AND ROUND(SUM(총점) / (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)), 2) >= 60



/////////////////



-- " 1학기 " 두번째 query내용

SELECT T0 "회원번호",

SUM(T1) "math03", SUM(T2) "math04",

SUM(T3) "math05", SUM(T4) "math06",

SUM(T5) "math07", SUM(T6) "math08"

FROM (



SELECT A0 T0,

DECODE(SUBSTR(G.A1,3,2), '03', SUM(G.A2), 0)/COUNT(A0) T1,

DECODE(SUBSTR(G.A1,3,2), '04', SUM(G.A2), 0)/COUNT(A0) T2,

DECODE(SUBSTR(G.A1,3,2), '05', SUM(G.A2), 0)/COUNT(A0) T3,

DECODE(SUBSTR(G.A1,3,2), '06', SUM(G.A2), 0)/COUNT(A0) T4,

DECODE(SUBSTR(G.A1,3,2), '07', SUM(G.A2), 0)/COUNT(A0) T5,

DECODE(SUBSTR(G.A1,3,2), '08', SUM(G.A2), 0)/COUNT(A0) T6

FROM (

SELECT P.MEMBER_ID A0,

P.YYMM A1,

DECODE(P.SUBJECT, '30', COUNT(*)) A2

FROM G05_POINT P, G02_CONTACT@MIS C

WHERE P.YYMM BETWEEN TO_CHAR(SYSDATE, 'YY') || '03' AND TO_CHAR(SYSDATE, 'YY') || '08'





AND C.SUBSCRIPTION_OPEN <= TO_CHAR(SYSDATE, 'YYYY') || '0801'

AND C.REGULAR_TO >= TO_CHAR(SYSDATE, 'YYYY') || '0301'



AND C.MEMBER_ID = :MEMBERID

AND P.MEMBER_ID = :MEMBERID



AND P.INSERT_YYMM < TO_CHAR(SYSDATE, 'YYYY') || '0901'

AND C.MEMBER_ID = P.MEMBER_ID



AND SUBSTR(C.GBN, 2, 2) = P.GBN



AND P.YYMM <> '0000'

AND SUBSTR(P.SUBJECT,1,2) = '30'



GROUP BY P.MEMBER_ID, P.YYMM, P.SUBJECT, C.SEQ

) G GROUP BY G.A0, SUBSTR(G.A1,3,2)

////////////



query내용이 상당히 복잡(??)합니다.

문제는요 첫번째 query내용에

두번째 query내용을 삽입해서 하나의 query에서 돌리려고 하는데요

정말 넘 머리가 아프게 ~~~ 안돼네요...정말정말 도움좀 꼭 주세요.



1  COMMENTS
  • Profile
    이성훈 2000.10.13 18:34
    동시에 결과가 나와야 되는 건가요

    아님 첫번째 Query의 결과로 두번째 Query가 돌아가는 건가요?





    ajfxlspt wrote:

    > -- "1학기" 첫번째 query내용

    > SELECT 회원번호 "회원번호",

    > SUM(학년) "학년",

    > SUM(총점) "총 점",

    > SUM(A03월국어) "3월 국어", SUM(A04월국어) "4월 국어",

    > SUM(A05월국어) "5월 국어", SUM(A06월국어) "6월 국어",

    > SUM(A07월국어) "7월 국어", SUM(A08월국어) "8월 국어",

    > SUM(A03월영어) "3월 영어", SUM(A04월영어) "4월 영어",

    > SUM(A05월영어) "5월 영어", SUM(A06월영어) "6월 영어",

    > SUM(A07월영어) "7월 영어", SUM(A08월영어) "8월 영어",

    > SUM(A03월수학) "3월 수학", SUM(A04월수학) "4월 수학",

    > SUM(A05월수학) "5월 수학", SUM(A06월수학) "6월 수학",

    > SUM(A07월수학) "7월 수학", SUM(A08월수학) "8월 수학",

    > SUM(국어횟수) "국어 횟수", SUM(영어횟수) "영어 횟수",

    > SUM(수학횟수) "수학 횟수",

    > SUM(국어총점) "국어 총점", SUM(영어총점) "영어 총점",

    > SUM(수학총점) "수학 총점",

    > SUM(국어평균) "국어 평균", SUM(영어평균) "영어 평균",

    > SUM(수학평균) "수학 평균",

    > SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수) "총횟수",

    > ROUND(SUM(총점) / (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)), 2) "총평균",

    > SUM(TOT),

    > sum(A3국어), sum(A4국어), sum(A5국어), sum(A6국어), sum(A7국어), sum(A8국어),

    > sum(A3영어), sum(A4영어), sum(A5영어), sum(A6영어), sum(A7영어), sum(A8영어),

    > sum(A3수학), sum(A4수학), sum(A5수학), sum(A6수학), sum(A7수학), sum(A8수학),

    > 지점 "지점",

    > M.MEMBER_NAME "NAME",

    > BU.BUSINESS_NAME "BNAME",

    > Z.CITY || ' ' || Z.TOWN "TOWN",

    > DECODE(INSTR(M.DEL_ADDRESS3, ' ', 1, 2), 0, M.DEL_ADDRESS3,

    > SUBSTR(M.DEL_ADDRESS3, 1, INSTR(M.DEL_ADDRESS3, ' ', 1, 2)) ) "CITY1",

    > DECODE(INSTR(M.DEL_ADDRESS3, ' ', 3, 2), 0, ' ',

    > SUBSTR(SUBSTR(M.DEL_ADDRESS3, INSTR(M.DEL_ADDRESS3, ' ', 3, 2), 50),2,50)) "CITY2",

    >

    > DECODE(INSTR(B.BRANCH_NAME,'지점'), 0, B.BRANCH_NAME,

    > SUBSTR(B.BRANCH_NAME, 1, INSTR(B.BRANCH_NAME,'지점') - 1)) "지점1"

    > FROM (

    > SELECT 지점, 학년, 회원번호,

    > TRUNC(((DECODE(SIGN(SUM(TOT) - 6), 1, 6, SUM(TOT)) * 4) * 40) / 100, 0) "TOT",

    > SUM(총점) / COUNT(회원번호) 총점,

    > SUM(A03월국어) / COUNT(회원번호) A03월국어, SUM(A04월국어) / COUNT(회원번호) A04월국어,

    > SUM(A05월국어) / COUNT(회원번호) A05월국어, SUM(A06월국어) / COUNT(회원번호) A06월국어,

    > SUM(A07월국어) / COUNT(회원번호) A07월국어, SUM(A08월국어) / COUNT(회원번호) A08월국어,

    > SUM(A03월영어) / COUNT(회원번호) A03월영어, SUM(A04월영어) / COUNT(회원번호) A04월영어,

    > SUM(A05월영어) / COUNT(회원번호) A05월영어, SUM(A06월영어) / COUNT(회원번호) A06월영어,

    > SUM(A07월영어) / COUNT(회원번호) A07월영어, SUM(A08월영어) / COUNT(회원번호) A08월영어,

    > SUM(A03월수학) / COUNT(회원번호) A03월수학, SUM(A04월수학) / COUNT(회원번호) A04월수학,

    > SUM(A05월수학) / COUNT(회원번호) A05월수학, SUM(A06월수학) / COUNT(회원번호) A06월수학,

    > SUM(A07월수학) / COUNT(회원번호) A07월수학, SUM(A08월수학) / COUNT(회원번호) A08월수학,

    > SUM(국어횟수) / COUNT(회원번호) 국어횟수,

    > SUM(영어횟수) / COUNT(회원번호) 영어횟수,

    > SUM(수학횟수) / COUNT(회원번호) 수학횟수,

    > SUM(국어총점) / COUNT(회원번호) 국어총점,

    > SUM(영어총점) / COUNT(회원번호) 영어총점,

    > SUM(수학총점) / COUNT(회원번호) 수학총점,

    > SUM(국어평균) / COUNT(회원번호) 국어평균,

    > SUM(영어평균) / COUNT(회원번호) 영어평균,

    > SUM(수학평균) / COUNT(회원번호) 수학평균,

    > SUM(A3국어) / COUNT(회원번호) A3국어, SUM(A4국어) / COUNT(회원번호) A4국어,

    > SUM(A5국어) / COUNT(회원번호) A5국어, SUM(A6국어) / COUNT(회원번호) A6국어,

    > SUM(A7국어) / COUNT(회원번호) A7국어, SUM(A8국어) / COUNT(회원번호) A8국어,

    > SUM(A3영어) / COUNT(회원번호) A3영어, SUM(A4영어) / COUNT(회원번호) A4영어,

    > SUM(A5영어) / COUNT(회원번호) A5영어, SUM(A6영어) / COUNT(회원번호) A6영어,

    > SUM(A7영어) / COUNT(회원번호) A7영어, SUM(A8영어) / COUNT(회원번호) A8영어,

    > SUM(A3수학) / COUNT(회원번호) A3수학, SUM(A4수학) / COUNT(회원번호) A4수학,

    > SUM(A5수학) / COUNT(회원번호) A5수학, SUM(A6수학) / COUNT(회원번호) A6수학,

    > SUM(A7수학) / COUNT(회원번호) A7수학, SUM(A8수학) / COUNT(회원번호) A8수학,

    > MAX(SEQ) SEQ

    > FROM (

    > SELECT 지점 "지점",

    > SUBSTR(구분, 2, 1) "학년",

    > 회원번호 "회원번호",

    > 구독기간 "TOT",

    > SUM(총점) "총점",

    > NVL(SUM(A.T_K03), 0) "A03월국어", NVL(SUM(A.T_K04), 0) "A04월국어",

    > NVL(SUM(A.T_K05), 0) "A05월국어", NVL(SUM(A.T_K06), 0) "A06월국어",

    > NVL(SUM(A.T_K07), 0) "A07월국어", NVL(SUM(A.T_K08), 0) "A08월국어",

    > NVL(SUM(A.T_E03), 0) "A03월영어", NVL(SUM(A.T_E04), 0) "A04월영어",

    > NVL(SUM(A.T_E05), 0) "A05월영어", NVL(SUM(A.T_E06), 0) "A06월영어",

    > NVL(SUM(A.T_E07), 0) "A07월영어", NVL(SUM(A.T_E08), 0) "A08월영어",

    > NVL(SUM(A.T_M03), 0) "A03월수학", NVL(SUM(A.T_M04), 0) "A04월수학",

    > NVL(SUM(A.T_M05), 0) "A05월수학", NVL(SUM(A.T_M06), 0) "A06월수학",

    > NVL(SUM(A.T_M07), 0) "A07월수학", NVL(SUM(A.T_M08), 0) "A08월수학",

    > NVL(SUM(A.C_K), 0) "국어횟수", NVL(SUM(A.C_E), 0) "영어횟수",

    > NVL(SUM(A.C_M), 0) "수학횟수",

    > NVL(SUM(A.T_K), 0) "국어총점", NVL(SUM(A.T_E), 0) "영어총점",

    > NVL(SUM(A.T_M), 0) "수학총점",

    > DECODE(NVL(SUM(A.C_K), 0), 0, 0, ROUND(SUM(A.T_K) / SUM(A.C_K), 1)) "국어평균",

    > DECODE(NVL(SUM(A.C_E), 0), 0, 0, ROUND(SUM(A.T_E) / SUM(A.C_E), 1)) "영어평균",

    > DECODE(NVL(SUM(A.C_M), 0), 0, 0, ROUND(SUM(A.T_M) / SUM(A.C_M), 1)) "수학평균",

    > decode(SUM(A.T_K03), 0, 999, 0) "A3국어", decode(SUM(A.T_K04), 0, 999, 0) "A4국어",

    > decode(SUM(A.T_K05), 0, 999, 0) "A5국어", decode(SUM(A.T_K06), 0, 999, 0) "A6국어",

    > decode(SUM(A.T_K07), 0, 999, 0) "A7국어", decode(SUM(A.T_K08), 0, 999, 0) "A8국어",

    > decode(SUM(A.T_E03), 0, 999, 0) "A3영어", decode(SUM(A.T_E04), 0, 999, 0) "A4영어",

    > decode(SUM(A.T_E05), 0, 999, 0) "A5영어", decode(SUM(A.T_E06), 0, 999, 0) "A6영어",

    > decode(SUM(A.T_E07), 0, 999, 0) "A7영어", decode(SUM(A.T_E08), 0, 999, 0) "A8영어",

    > decode(SUM(A.T_M03), 0, 999, 0) "A3수학", decode(SUM(A.T_M04), 0, 999, 0) "A4수학",

    > decode(SUM(A.T_M05), 0, 999, 0) "A5수학", decode(SUM(A.T_M06), 0, 999, 0) "A6수학",

    > decode(SUM(A.T_M07), 0, 999, 0) "A7수학", decode(SUM(A.T_M08), 0, 999, 0) "A8수학",

    > SEQ

    > FROM

    > (SELECT C.BRANCH 지점,

    > P.MEMBER_ID 회원번호,

    > DECODE(P.SUBJECT, '10', SUM(MONTHS_BETWEEN(

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

    > ), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

    > ), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*),

    > '20', SUM(MONTHS_BETWEEN(

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

    > ), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

    > ), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*),

    > '30', SUM(MONTHS_BETWEEN(

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD'), TO_DATE(REGULAR_TO, 'YYYYMMDD'))

    > ), 1, TO_DATE(REGULAR_TO, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0801', 'YYYYMMDD')),

    > DECODE(SIGN( MONTHS_BETWEEN(TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))

    > ), 1, TO_DATE(SUBSCRIPTION_OPEN, 'YYYYMMDD'), TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '0301', 'YYYYMMDD'))) + 1) / COUNT(*)) 구독기간,

    > P.GBN 구분,

    > SUM(P.POINT) 총점,

    > DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K03, /* 3월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K04, /* 4월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K05, /* 5월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K06, /* 6월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K07, /* 7월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '10', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_K08, /* 8월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E03, /* 3월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E04, /* 4월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E05, /* 5월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E06, /* 6월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E07, /* 7월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '20', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_E08, /* 8월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '03', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M03, /* 3월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '04', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M04, /* 4월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '05', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M05, /* 5월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '06', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M06, /* 6월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '07', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M07, /* 7월 */

    > DECODE(SUBSTR(P.YYMM,3,2), '08', DECODE(P.SUBJECT, '30', DECODE(COUNT(*), 0 , 0, ROUND(SUM(P.POINT) / COUNT(*), 2)))) T_M08, /* 8월 */

    > DECODE(P.SUBJECT, '10', COUNT(*)) C_K,

    > DECODE(P.SUBJECT, '20', COUNT(*)) C_E,

    > DECODE(P.SUBJECT, '30', COUNT(*)) C_M,

    > DECODE(P.SUBJECT, '10', SUM(P.POINT)) T_K,

    > DECODE(P.SUBJECT, '20', SUM(P.POINT)) T_E,

    > DECODE(P.SUBJECT, '30', SUM(P.POINT)) T_M,

    > C.SEQ SEQ

    > FROM G05_POINT P, G02_CONTACT@MIS C

    > WHERE P.YYMM BETWEEN TO_CHAR(SYSDATE, 'YY') || '03' AND TO_CHAR(SYSDATE, 'YY') || '08'

    > AND C.SUBSCRIPTION_OPEN <= TO_CHAR(SYSDATE, 'YYYY') || '0801'

    > AND C.REGULAR_TO >= TO_CHAR(SYSDATE, 'YYYY') || '0301'

    > AND SUBSTR(C.GBN, 2, 2) = P.GBN

    > AND C.MEMBER_ID in (

    > '1999041530', '1999041780', '1999042002', '1999042064', '1999042304', '1999042307', '1999042474', '1999042837', '1999043008', '1999043573', '1999043640', '1999044817', '1999044922', '1999045739', '1999045740','1999045908', '1999050416', '1999057929', '1999060547', '1999060551', '1999064490', '1999065178', '1999065181', '2000000868', '2000004068', '2000009615'

    > )

    > AND P.MEMBER_ID in (

    > '1999041530', '1999041780', '1999042002', '1999042064', '1999042304', '1999042307', '1999042474', '1999042837', '1999043008', '1999043573', '1999043640', '1999044817', '1999044922', '1999045739', '1999045740','1999045908', '1999050416', '1999057929', '1999060547', '1999060551', '1999064490', '1999065178', '1999065181', '2000000868', '2000004068', '2000009615'

    > )

    > AND C.BRANCH BETWEEN :MEMA AND :MEMZ

    > AND P.INSERT_YYMM < TO_CHAR(SYSDATE, 'YYYY') || '0901'

    > AND C.MEMBER_ID = P.MEMBER_ID

    > GROUP BY C.BRANCH, P.MEMBER_ID, P.SUBJECT, SUBSTR(P.YYMM,3,2), C.SEQ, P.GBN ) A

    > GROUP BY 지점, SUBSTR(구분, 2, 1), 회원번호, 구독기간, SEQ)

    > GROUP BY 지점, 학년, 회원번호

    > ) A, G01_MEMBER@MIS M, G02_CONTACT@MIS C, G90_ZIPCODE@MIS Z, G13_BUSINESS@MIS BU, G92_BRANCH@MIS B

    > WHERE M.MEMBER_ID = A.회원번호

    > AND C.MEMBER_ID = A.회원번호

    > AND M.MEMBER_ID = C.MEMBER_ID

    > AND C.BRANCH = B.BRANCH

    > AND C.SEQ = A.SEQ

    > AND C.PERSONAL_ID = BU.PERSONAL_ID

    > AND Z.ZIP_CD1 = M.DEL_ZIP_CD1

    > AND Z.ZIP_CD2 = M.DEL_ZIP_CD2

    >

    > GROUP BY 지점, 회원번호, M.MEMBER_NAME, BU.BUSINESS_NAME, Z.CITY, Z.TOWN, M.DEL_ADDRESS3, B.BRANCH_NAME

    > HAVING (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)) >= SUM(TOT)

    > AND ROUND(SUM(총점) / (SUM(국어횟수) + SUM(영어횟수) + SUM(수학횟수)), 2) >= 60

    >

    > /////////////////

    >

    > -- " 1학기 " 두번째 query내용

    > SELECT T0 "회원번호",

    > SUM(T1) "math03", SUM(T2) "math04",

    > SUM(T3) "math05", SUM(T4) "math06",

    > SUM(T5) "math07", SUM(T6) "math08"

    > FROM (

    >

    > SELECT A0 T0,

    > DECODE(SUBSTR(G.A1,3,2), '03', SUM(G.A2), 0)/COUNT(A0) T1,

    > DECODE(SUBSTR(G.A1,3,2), '04', SUM(G.A2), 0)/COUNT(A0) T2,

    > DECODE(SUBSTR(G.A1,3,2), '05', SUM(G.A2), 0)/COUNT(A0) T3,

    > DECODE(SUBSTR(G.A1,3,2), '06', SUM(G.A2), 0)/COUNT(A0) T4,

    > DECODE(SUBSTR(G.A1,3,2), '07', SUM(G.A2), 0)/COUNT(A0) T5,

    > DECODE(SUBSTR(G.A1,3,2), '08', SUM(G.A2), 0)/COUNT(A0) T6

    > FROM (

    > SELECT P.MEMBER_ID A0,

    > P.YYMM A1,

    > DECODE(P.SUBJECT, '30', COUNT(*)) A2

    > FROM G05_POINT P, G02_CONTACT@MIS C

    > WHERE P.YYMM BETWEEN TO_CHAR(SYSDATE, 'YY') || '03' AND TO_CHAR(SYSDATE, 'YY') || '08'

    >

    >

    > AND C.SUBSCRIPTION_OPEN <= TO_CHAR(SYSDATE, 'YYYY') || '0801'

    > AND C.REGULAR_TO >= TO_CHAR(SYSDATE, 'YYYY') || '0301'

    >

    > AND C.MEMBER_ID = :MEMBERID

    > AND P.MEMBER_ID = :MEMBERID

    >

    > AND P.INSERT_YYMM < TO_CHAR(SYSDATE, 'YYYY') || '0901'

    > AND C.MEMBER_ID = P.MEMBER_ID

    >

    > AND SUBSTR(C.GBN, 2, 2) = P.GBN

    >

    > AND P.YYMM <> '0000'

    > AND SUBSTR(P.SUBJECT,1,2) = '30'

    >

    > GROUP BY P.MEMBER_ID, P.YYMM, P.SUBJECT, C.SEQ

    > ) G GROUP BY G.A0, SUBSTR(G.A1,3,2)

    > ////////////

    >

    > query내용이 상당히 복잡(??)합니다.

    > 문제는요 첫번째 query내용에

    > 두번째 query내용을 삽입해서 하나의 query에서 돌리려고 하는데요

    > 정말 넘 머리가 아프게 ~~~ 안돼네요...정말정말 도움좀 꼭 주세요.

    >