例如:数据库有如下字段:
用户名称 题目1 题目2 题目3 ...(后面类似)
a A B A
b B B A怎么样用语句实现对一个用户答题情况进行统计,比如说:a用户答题的总分,或者,a用户答案选择A的题目的个数。麻烦各位给解答一下,急用,谢谢了。
用户名称 题目1 题目2 题目3 ...(后面类似)
a A B A
b B B A怎么样用语句实现对一个用户答题情况进行统计,比如说:a用户答题的总分,或者,a用户答案选择A的题目的个数。麻烦各位给解答一下,急用,谢谢了。
调试欢乐多
from 用户表
where 用户名称=‘a’
order by 题目1+题目2+题目3是这样么?
insert into tab([用户名称],[题目1],[题目2],[题目3])
select 'a','A','B','A'
union all
select 'b','B','B','A'declare @exec varchar(8000)
set @exec=''
select @exec=@exec+'[用户名称],'''+name+''' as [题目],'+name+' as [答案] from tab union all select '
from syscolumns
where id=object_id('tab') and name <>'用户名称'
set @exec='select * into tt from (select '+left(@exec,len(@exec)-len('union all select '))+') tt order by [用户名称],[题目]'
--print @execexec (@exec)select * from tab select * from ttselect [用户名称], sum(case when [答案] ='A' then 1 else 0 end ) as [A的个数] from tt group by [用户名称]
/*
表:tab 用户名称 题目1 题目2 题目3
------- ----- ----- -----
a A B A
b B B A表:t用户名称 题目 答案
------ ----- ------
a 题目1 A
a 题目2 B
a 题目3 A
b 题目1 B
b 题目2 B
b 题目3 A结果:用户名称 A的个数
------- -------
a 2
b 1删除测试
------
*/
drop table tab
drop table tt