쿼리어떻게 해결해야될까요..?? 0 8 1,666

by stylebox [SQL Query] [2015.05.15 14:47:50]


질문1.png (13,045Bytes)

첨부이미지처럼

 

결과적으로 테이블1을 결과화면 테이블처럼

쿼리를 만들어야되는데

어떻게 해야될지 막막하네요.

ㄱ결과화면 테이블은 웹화면에서 보여주는 테이블입니다.

ㄱ감사합니다.

 

by 아발란체 [2015.05.15 15:19:05]

PIVOT 검색해보세요. / 관련 강좌 http://www.gurubee.net/lecture/2214

표측과 표두를 바꿀 수 있는 함수입니다.

물론 요 함수 써도 자동으로 바뀌지 않습니다.

결국 하나 하나 항목을 기술하여 변경 해야 합니다.


by stylebox [2015.05.15 15:48:08]

좋은 답변 감사합니다.

행복한 금요일 보내세요.


by rain748 [2015.05.15 15:32:46]

WITH T (NAME,T1,T2,T3,T4,T6) AS
(
SELECT 'CODE1',11,77,7,5,5 FROM DUAL UNION ALL
SELECT 'CODE2',44,0,5,5,5 FROM DUAL UNION ALL
SELECT 'CODE3',11,2,3,2,4 FROM DUAL UNION ALL
SELECT 'CODE4',77,0,5,6,6 FROM DUAL UNION ALL
SELECT 'CODE5',55,1,7,8,8 FROM DUAL
)
SELECT *
FROM (
SELECT NAME, C1, CODE
FROM T
unpivot (CODE for C1 in (T1,T3,T6)))
pivot
(MIN(CODE) for NAME in ('CODE1','CODE2','CODE3','CODE4','CODE5'))
ORDER BY C1;


by stylebox [2015.05.15 15:49:02]

감사합니다.

답변주시거 응용하니 원하는 결과가 나오네요. 좋은 금요일 보내세요.^^


by 창조의날개 [2015.05.15 15:43:03]

WITH TT(CODE, T1, T2, T3, T4, T6) AS(
    SELECT 'CODE1', 11,77,7,5,5 FROM DUAL UNION ALL
    SELECT 'CODE2', 44,0,5,5,5 FROM DUAL UNION ALL
    SELECT 'CODE3', 11,2,3,2,4 FROM DUAL UNION ALL
    SELECT 'CODE4', 77,0,5,6,6 FROM DUAL UNION ALL
    SELECT 'CODE5', 55,1,7,8,8 FROM DUAL
)
SELECT 'T1'
     , MAX(DECODE(CODE,'CODE1',T1)) CODE1
     , MAX(DECODE(CODE,'CODE2',T1)) CODE2
     , MAX(DECODE(CODE,'CODE3',T1)) CODE3
     , MAX(DECODE(CODE,'CODE4',T1)) CODE4
     , MAX(DECODE(CODE,'CODE5',T1)) CODE5
FROM TT
UNION ALL
SELECT 'T3'
     , MAX(DECODE(CODE,'CODE1',T3)) CODE1
     , MAX(DECODE(CODE,'CODE2',T3)) CODE2
     , MAX(DECODE(CODE,'CODE3',T3)) CODE3
     , MAX(DECODE(CODE,'CODE4',T3)) CODE4
     , MAX(DECODE(CODE,'CODE5',T3)) CODE5
FROM TT
UNION ALL
SELECT 'T6'
     , MAX(DECODE(CODE,'CODE1',T6)) CODE1
     , MAX(DECODE(CODE,'CODE2',T6)) CODE2
     , MAX(DECODE(CODE,'CODE3',T6)) CODE3
     , MAX(DECODE(CODE,'CODE4',T6)) CODE4
     , MAX(DECODE(CODE,'CODE5',T6)) CODE5
FROM TT
;

 


by stylebox [2015.05.15 15:51:50]

창조의 날개님 답변감사합니다.

행복한 금요일 보내시구 답변 참고해서 좋은결과 얻을께요.


by 마농 [2015.05.15 16:00:06]
SELECT *
  FROM (SELECT name, t1, t3, t6 FROM t)
 UNPIVOT (v FOR gb IN (t1, t3, t6))
 PIVOT (MIN(v) FOR name IN ('code1', 'code2', 'code3', 'code4', 'code5'))
 ORDER BY gb
;

 


by stylebox [2015.05.15 16:11:41]

마농님 관심 감사드리고

좋은답변 참고하도록 하겠습니다.

행복한 금요일 보내세요:)

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