2016-07-14 3 views
0

SQL Server 2008 R2 (SP2) 데이터베이스를 사용하고 있습니다.하나의 열에서 외래 키 값을 trasform하려면 어떻게해야합니까?

테이블 이름 : 고객

+----+----------+---------+ 
| Id | Name  | Surname | 
+----+----------+---------+ 
| 1 | Mario | Rossi | 
+----+----------+---------+ 
| 2 | Giuseppe | Verdi | 
+----+----------+---------+ 

테이블 이름 : 고객의 이익 나는 데이터에 대한 하나의 SQL 문을 작성해야

+------------+----------+ 
| CustomerId | Interest | 
+------------+----------+ 
| 1   | IT  | 
+------------+----------+ 
| 1   | Football | 
+------------+----------+ 
| 1   | Basket | 
+------------+----------+ 
| 2   | Basket | 
+------------+----------+ 
| 2   | Bonsai | 
+------------+----------+ 

나는이 개 고객 데이터에 대해이 같은 테이블과 자신의 이익을 추출. 출력 결과는 다음과 같아야합니다.

+----+----------+---------+-----------------------+ 
| Id | Name  | Surname | Interests    | 
+----+----------+---------+-----------------------+ 
| 1 | Mario | Rossi | IT; Football; Basket; | 
+----+----------+---------+-----------------------+ 
| 2 | Giuseppe | Verdi | Basket; Bonsai;  | 
+----+----------+---------+-----------------------+ 

본질적으로 모든 고객의 관심사가 세미콜론으로 구분 된 하나의 열이됩니다.

어떻게 구할 수 있습니까?

감사합니다, 마르코

+2

구글'SQL-Server 그룹은 당신이 사용할 수 있어야 – sagi

+1

concat' : http://stackoverflow.com/questions/194852/ single-text-string – mortb

+0

답은'STUFF()'와'FOR XML'을 포함합니다. – Kilren

답변

0

쿼리 다음 시도

SELECT 
    Id, 
    Name, 
    Surname, 
    (
     SELECT 
      CI.Interest + '; ' 
     FROM     
      CustomerInterests CI 
     WHERE 
      CI.CustomerId = C.ID 
     FOR XML PATH ('') 
    ) AS Interest 
FROM 
    Customer C 
관련 문제