我已经搜索了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
答案 0 :(得分: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
答案 1 :(得分:0)
首先,您需要将Excel电子表格加载到SQL Server。 我建议使用SSIS,这是一篇文章来帮助你:
然后您可以使用@ Arvo的方法对值进行求和