어제 질문 드렸던 시간표 쿼리 다시 질문 드립니다~! 0 2 479

by 천만달러 [2019.07.19 09:57:47]


test1.PNG (18,454Bytes)

어제 시간표 쿼리 질문 드렸었는데

http://www.gurubee.net/article/13281

위 링크 보고 제가 따라해 봤거든요 그런데 잘 안됩니다.ㅠㅠ

마지막 쿼리 보면 A, B, C, D, E 라는 다섯개의 테이블이 있는거 같은데...

예시에서 보여준 테이블은 A, B 두개 밖에 없는데... C, D, E는 어떤 테이블을

만들어야 하는지 궁금합니다.

 

A = TIME

T_NO T_NAME P_SDATE P_EDATE
1 1교시 0900 0950
2 2교시 1000 1050
3 3교시 1100 1150
4 4교시 1200

1250

B = CLASS

P_NO S_WEEK S_SUBJECT S_PROFESSOR S_ROOM
1교시 월요일 국어 홍길동 101
2교시 화요일 영어 홍길동2 201

 

예시에서 A와 B 테이블은 위와 같이 TIME, CLASS 테이블로 만들었습니다

 

SELECT MIN(GUBN_1) " "
    ,MIN(DECODE(S_WEEK, 2, GUBN_2)) "월"
    ,MIN(DECODE(S_WEEK, 3, GUBN_2)) "화"
    ,MIN(DECODE(S_WEEK, 4, GUBN_2)) "수"
    ,MIN(DECODE(S_WEEK, 5, GUBN_2)) "목"
    ,MIN(DECODE(S_WEEK, 6, GUBN_2)) "금"
    ,MIN(DECODE(S_WEEK, 7, GUBN_2)) "토"
FROM (
    SELECT C.*, D.*
        , DECODE(CNT, 1, T_NAME, 2, P_SDATE, 3, P_EDATE) GUBN_1
        , DECODE(CNT, 1, S_SUBJECT, 2, S_PROFESSOR, 3, S_ROOM) GUBN_2
    FROM(
        SELECT *
        FROM TIME, CLASS
        WHERE TIME.T_NO = CLASS.P_NO(+)
    ) C, (
        SELECT LEVEL CNT
        FROM DUAL
        CONNECT BY LEVEL <= 3
    ) D
    ORDER BY T_NO, S_WEEK, CNT
) E  
GROUP BY T_NO, CNT
;

 

그래서 링크에서 알려준데로 했는데 ...

NULL값만 나오고 안되네요 ㅠㅠ

 

 
1교시 수학 영어      
0900 홍길동 홍길동2      
0950 101 201      

 

by 마농 [2019.07.19 10:26:29]

1. 원하는 결과표도 그려주세요.
2. 디코드 구문의 비교값이 틀림.
3. 정렬은 인라인뷰 밖에서.


by 천만달러 [2019.07.19 11:13:20]

1번은 마지막에 표로 만들었습니다

2번과 3번은...ㅠ

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