with 마스터 as
(
select '0001' 마스터키, '김철수' 마스터이름, 54 나이, '서울시 등촌동' 주소 union all
select '0002' 마스터키, '박상길' 마스터이름, 50 나이, '서울시 목동' 주소
)
select * from 마스터;
with 디테일 as
( select '0000001' 디테일키, '0001' 마스터키, '아들1' 디테일이름, 12 디테일나이, '서울시 반포동' 디테일주소 union all
select '0000002' 디테일키, '0001' 마스터키, '아들2' 디테일이름, 10 디테일나이, '서울시 반포동 2' 디테일주소 union all
select '0000003' 디테일키, '0002' 마스터키, '딸1' 디테일이름, 20 디테일나이, '수원시 구운동' 디테일주소
)
select * from 디테일;
마스터키 마스터이름 나이 주소 디테일정보
0001 김철수 54 서울시 등촌동 0000001,아들1,12,서울시 반포동|0000002,아들2,10,서울시 반포동2
0002 박상길 50 서울시 목동 0000002,딸1,20,수원시 구운동
이렇게 디테일정보 컬럼에 디테일연관레코드데이터 전체를 표시 하고 싶은데요..
sql문으로 할수 있을까요?
Comment 4
-
군고구마
2015.11.25 16:34
-
김민식_279245
2015.11.25 17:16
네 답변감사합니다.
그런데 제가원하는것은 마스터조회할때 한컬럼안에 전체 관련 디테일정보를 표시할려고 하거든요..
프로그램으로 하드코딩하기보다는 SQL로 처리가능한지 알고 싶어서요..^^
-
항해자™
2015.11.26 14:17
for xml path를 이용해서 만들어 볼수 있겠네요,,
;with cteMaster (cMasterNo, cName, cAge, cAddr) as ( select '0001', N'김철수', 54, N'서울시 등촌동' union all select '0002', N'박상길', 50, N'서울시 목동' ) , cteDetail (cMasterNo, cDetailNo, cName, cAge, cAddr) as ( select '0001', '0000001', N'아들1', 12, N'서울시 반포동' union all select '0001', '0000002', N'아들2', 10, N'서울시 반포동 2' union all select '0002', '0000003', N'딸1', 20, N'수원시 구운동' ) select * , stuff ( ( select '|'+ cDetailNo +','+ cName +','+ rtrim(cAge) +','+ cAddr from cteDetail where cMasterNo = a.cMasterNo for xml path('') ) , 1, 1, '' ) as cDetail from cteMaster as a go
-
김민식_279245
2015.11.26 18:59
답변 감사합니다. 잘될것 같네요..^^
막 짠거라서 ^^;; 참고하시면 좋을거 같아요. 문자열+숫자는 형을 변환시켜주셔야 합니다.
create table test_TBL_99
(
col1 int
,col2 char(10)
,col3 int
)
insert into test_TBL_99 values (1,'주형권',99)
select convert(char(10),col1)+col2+convert(char(10),col3)
from test_TBL_99