[已解决问题] 关于交叉数据报表的问题
提问时间: 2008-03-03 10:01
悬赏分:20 浏览:355 次

有一个问卷调查表:
IP     问题  结果
ip1      1     A
ip1      2     B
ip1      3     C
ip2      1     B
ip2      2     C
ip2      3     C

想生成的报表如下:
IP  问题1 问题2 问题3 
x1   A      B       C
X2   B      C       C

该如何实现呢?

网上的解决方案都用case和sum来合并,但我的字段是varchar的,不是数字类型的,该如何实现呢?谢谢!

提问者:bill_ao - 初学一级
所有回答(2)
数据不多可以全部选到内存里面或者分批加载, 构造成对象再筛选. 挺不喜欢写一堆复杂的Sql,维护起来也麻烦.
6个月前   回答者:沙加 - 老鸟四级
tempa表: IP 问题  结果 ip1 1 A ip1 2 B ip1 3 C IP2 1 B IP2 2 C IP2 3 C code: declare @sql varchar(4000) set @sql = 'select IP ' select @sql = @sql + ',MAX(case 问题 when '''+问题+''' then 结果 end) [问题'+问题++']' from (select distinct 问题 from tempa ) as a select @sql = @sql+'into tempb from tempa group by ip ' --print @sql exec(@sql) select * from tempb 结果: IP 问题1 问题2 问题3 ip1 A B C IP2 B C C -----------------------完------------------
6个月前   回答者:被偷De贼 - 菜鸟二级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接