채용근님 다시 질문입니다 ^^; 0 3 619

by 끓는피 [2008.06.17 06:44:45]


select
        TMID,
        LI1 ,
        LI2 ,
        LI3 ,
        LI4 ,
        LI5 ,
        LI6 ,
        LI7 ,
        LI8 ,
        LI9 ,
        LI10,
        LI11,
        LI12,
        LI13,
        LI14,
        LI15,
        LI16
from (
select
       tmodid TMID,
       max(decode(qustno, '1' , qtid, '')) LI1 ,
       max(decode(qustno, '2' , qtid, '')) LI2 ,
       max(decode(qustno, '3' , qtid, '')) LI3 ,
       max(decode(qustno, '4' , qtid, '')) LI4 ,
       max(decode(qustno, '5' , qtid, '')) LI5 ,
       max(decode(qustno, '6' , qtid, '')) LI6 ,
       '' LI7 ,
       '' LI8 ,
       '' LI9 ,
       '' LI10,
       '' LI11,
       '' LI12,
       '' LI13,
       '' LI14,
       '' LI15,
       '' LI16
from qusthist
where typeid = 'CL01'
group by tmodid, typeid


union all

select --typeid,
       tmodid TMID,
       '' LI1 ,
       '' LI2 ,
       '' LI3 ,
       '' LI4 ,
       '' LI5 ,
       '' LI6 ,
       max(decode(qustno, '7' , qtid, '')) LI7 ,
       max(decode(qustno, '8' , qtid, '')) LI8 ,
       max(decode(qustno, '9' , qtid, '')) LI9 ,
       max(decode(qustno, '10', qtid, '')) LI10,
       max(decode(qustno, '11', qtid, '')) LI11,
       max(decode(qustno, '12', qtid, '')) LI12,
       max(decode(qustno, '13', qtid, '')) LI13,
       max(decode(qustno, '14', qtid, '')) LI14,
       max(decode(qustno, '15', qtid, '')) LI15,
       max(decode(qustno, '16', qtid, '')) LI16
from qusthist
where typeid = 'CL02'
group by tmodid
)

이렇게 하면

41 109 129 130 131 132 133          
45 109 129 130 131 132 133          
30 109 129 130 131 132 133          
48 109 129 130 131 132 133          
45                                                 134 138 139 140 151 153 155 157 159 161
48                                                 136 137 139 141 142 151 153 156 158 160
41                                                 135 136 137 139 140 142 153 154 155 159
30                                                 136 137 141 142 151 156 157 158 160 161

decode할때 0 대신  빈칸'' 으로 처리 햇는데 답이 저렇게 나와요

41, 45 , 30 이게 코드 아이디 인데

max로 하니까 48번 인것 한줄만 나와지데요

위에 네줄을 둘을 합치는 방법 좀 갈켜주세요

 

 

by 현 [2008.06.17 07:58:47]
첫번째 쿼리의 group by tmodid, typeid 때문에 그렇습니다.
group by tmodid 이렇게만 줘보세요.

by 마농 [2008.06.17 08:59:55]
최종 select절에서도 group by tmid하셔야지요.

by 채용근 [2008.06.17 09:32:07]
감사합니다. 현님 마농님 ㅋ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입