2014-02-27 4 views
0

처음에는 제목이 의미가 없습니다. 설명하겠습니다.열의 값을 한 번만 선택하고 다른 열의 소유 값을 선택하십시오.

있어 3 테이블 : 냉동차, 규율과

JudgedBy

냉동 테이블에서 i는 ID, 이름과 성을 얻었다.
--------------- 
1 John Doe 
2 john2 Doe2 
3 etc 

은 징계 테이블에서 나는 규율과 냉동 테이블에서 외부 키를 가지고 JudgedBy 테이블에서 징계 이름, ID

------------ 
1 hockey 
2 Basketball 
3 football 
4 etc 

을 얻었다. 레퍼 이드와 징계 이드입니다. 그 분야는 한 번만 보여주고 모든 냉동차가 문자열로 행에 표시되도록 한 스포츠 분야에서 여러 하나의 열에서 냉동차

--------------- 
1 4 //Discipline with id 1 is judged by reefer with id 4,2,3 
1 2 
1 3 

내가 원하는 것은, 선택 분야 (이름) 및 기타 항목에 냉동차가있을 수 있습니다. 이 같은 것

--------- 
|hockey|  |John Doe , John2 Doe2, etc| 
|Basketball| |Another reefer, Jet another reefer| 

지금까지이 작업의 두 부분을 모두 수행했지만 그럴 수는 없습니다. 내가 내부 사용 분야 및 냉동차를 선택

SELECT Discipline.Name, Reefers.name, Reefers.surname 
FROM Discipline INNER JOIN 
     JudgedBy ON JudgedBy.Discipline_ID = Discipline.ID INNER JOIN 
     Reefers ON JudgedBy.Reefer_ID = Reefers.ID 

가입 나는

------------ 
hockey John Doe 
hockey John2 Doe2 
hockey Another one 

다른 부분은 하나 개의 문자열에 넣어하는 것입니다 얻을. 이 조각을 찾았습니다

declare @out as varchar(max) 
set @out= '' 
select @out = @out + Name + ' ' + Surnam + ', ' from Reefers 
select @out as Game reefers 

어떻게이 두 조각을 함께 넣을 수 있습니까? 나는 내가 원하는 것을 설명하기를 희망한다.

감사합니다.

+0

[SQL Server 관리 Studio에서 하나의 행에 하나의 열을 연결]의 중복 가능성 (http://stackoverflow.com/questions/ : 여기

은 당신이 원하는 무엇에 대한 예입니다 20912675/concatenating-a-single-column-a-one-row-in-sql-server-management-studio) –

답변

0

SQL Server에서 집계 문자열 연결을 수행하는 것은 약간의 고통입니다. 서브 쿼리와 for xml path()이 필요합니다.

select d.name, 
     stuff((select ', '+r.name + ' ' + r.surname 
       from JudgedBy jb join 
        Reefers r 
        on jb.Reefer_ID = r.ID 
       where jb.Discipline_ID = d.ID 
       for xml path ('') 
      ), 1, 2, '') 
from Discipline d; 
관련 문제