2012-02-22 3 views
3

저는 StackOverflow와 google을 꽤 오래 동안 검색했으며 SQL을 사용하여 원하는 솔루션에 가까운 곳에서도 답변을 찾을 수 없었습니다. 나는 CSV 파일 (1 테이블)을 가지고 있으며 수많은 사용자를위한 데이터를 가지고있다. 문제는 각 사용자가 여러 개의 점수가 있지만 UserID가 같은 여러 행이 있다는 것입니다. 나는 그 점수를 자신의 칼럼으로 이동하여 사용자의 모든 데이터가있는 한 행을 제시하고자합니다. 어떻게 SQL을 사용하여 이것을 수행 할 수 있습니까? 현재 레이아웃의여러 행 데이터를 고유 한 열로 옮기기

예 :

UserID FNm  LNm Measure Score 
0001 person one LNF  26 
0001 person one NFS  74 
0001 person one CFS  54 
0002 person two LNF  35 
0002 person two NFS  43 
0002 person two CFS  33 

원하는 솔루션 : 일부 임시 테이블에 그대로

UserID FNm  LNm LNF NFS CFS 
0001 person one 26 74 54 
0002 person two 35 43 33 

답변

5

먼저, 모든 레코드를 삽입합니다. 두 번째로, 결합 된 데이터를 필요한 테이블에 삽입하십시오. 일부를 선택 :

select UserID, FNm, LNm, 
    max(case when Measure='LNF' then Score else 0 end) as LNF, 
    max(case when Measure='NFS' then Score else 0 end) as NFS, 
    max(case when Measure='CFS' then Score else 0 end) as CFS 
from temptable 
group by UserID, FNm, LNm 
+0

매력처럼 일 값 합계를 아르보의 접근 @ 사용할 수 있습니다 내가 SSIS를 사용하는 것이 좋습니다, 여기에 당신을 도울 수있는 기사입니다. – swagger937

관련 문제