2012-02-22 34 views
3

我已经搜索了StackOverflow和谷歌很长一段时间了,并且一直无法找到答案,甚至远程接近我使用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

工作般的魅力,谢谢。 – swagger937 2012-02-22 21:55:19

0

首先,您需要将您的Excel电子表格加载到SQL Server。 我建议使用SSIS,这里是一个文章,以帮助您:

http://www.techrepublic.com/blog/datacenter/how-to-import-an-excel-file-into-sql-server-2005-using-integration-services/205

那么你可以使用@帕特的做法进行总结的值

+1

这似乎对我来说过分夸张,因为我们可以非常容易地插入CSV文件,而不涉及Excel和SSIS。 – 2012-02-22 14:43:24

+0

当然,它可以做到,我只是SSIS,这就是为什么我建议它 – Diego 2012-02-22 14:49:32

相关问题