안녕하세요.. 초보가 염치없이 자꾸 질문만 드리네요..
두개의 테이블이 있을경우 행열번환 관련 쿼리 질문입니다.
(테이블A)
인덱스 컬럼1 컬럼2
1 가 150
2 나 160
3 다 180
(테이블B)
인덱스 값
1 A
1 B
1 C
2 A1
2 B1
2 C1
3 A2
3 B2
3 C2
이런형태로 두개의 테이블이 있는데
결과물을
columnA columnB columnC
1 2 3
가 나 다
150 160 180 ---여기까지가 테이블A의 행열번환(위부터 인덱스, 컬럼1, 컬럼2)
A A1 A2
B B1 B2
C C1 C2 ---여기까지는 테이블 B에 각 인덱스에 맞는 값
이 보여지는 쿼리를 만들고 싶은데..
아무리 고민해도 답이 나오질 않습니다.. 고수분들 힌트좀 부탁드립니다
음 이쿼리를 어디다 쓸지는 모르겠지만 뭔가 잘못된 쿼리인듯 합니다..... 일단 데이터 타입이 다르구요... 다 스트링인건지...
일단 억지로라도 한 번 만들어 봤습니다.... 도움이 되실지는;;; 아니면 다음 고수분께 패스....
drop table test1;
drop table test2;
create table test1
(
idx int,
val1 nvarchar(10),
val2 nvarchar(10)
)
insert into test1 values (1, '가', 150), (2, '나', 160), (3, '다', 180);
create table test2
(
idx int,
val nvarchar(10)
)
insert into test2
values (1, 'A')
, (1, 'B')
, (1, 'C')
, (2, 'A1')
, (2, 'B1')
, (2, 'C1')
, (3, 'A2')
, (3, 'B2')
, (3, 'C3');
select max(cast(co1 as nvarchar)) as co1
, max(cast(co2 as nvarchar)) as co2
, max(cast(co3 as nvarchar)) as co3
from (
select ROW_NUMBER() OVER(PARTITION BY idx ORDER BY idx) as num
, case idx when 1 then idx end as co1
, case idx when 2 then idx end as co2
, case idx when 3 then idx end as co3
from test1 ) as z1
group by num
union all
select max(co1) as co1
, max(co2) as co2
, max(co3) as co3
from (
select ROW_NUMBER() OVER(PARTITION BY idx ORDER BY idx) as num
, case idx when 1 then val1 end as co1
, case idx when 2 then val1 end as co2
, case idx when 3 then val1 end as co3
from test1 ) as z1
group by num
union all
select max(co1) as co1
, max(co2) as co2
, max(co3) as co3
from (
select ROW_NUMBER() OVER(PARTITION BY idx ORDER BY idx) as num
, case idx when 1 then val2 end as co1
, case idx when 2 then val2 end as co2
, case idx when 3 then val2 end as co3
from test1) as z1
group by num
union all
select max(co1) as co1
, max(co2) as co2
, max(co3) as co3
from (
select ROW_NUMBER() OVER(PARTITION BY idx ORDER BY idx) as num
, case idx when 1 then val end as co1
, case idx when 2 then val end as co2
, case idx when 3 then val end as co3
from test2) as z1
group by num