create table tempAB(A varchar(10),B varchar(10))
insert into tempAB values("a1","b1")
insert into tempAB values("a2","b1")
insert into tempAB values("a3","b1")
insert into tempAB values("a4","b2")
insert into tempAB values("a5","b2")
insert into tempAB values("a6","b2")
//新建一个表,以下代码可以返回B的值为b2,第一考试网提示所有对应的A的值相加起来的结果
首先就是把A列中符合条件的行转换为列,col+A的值为列名,
再把各列相加
declare @sql varchar(4000)
set @sql = "select """""
select @sql=@sql+"+table"+A+"."+"col"+A
from (select distinct A from tempAB where B="b2") as e
select @sql=@sql+" from "
select @sql=@sql+"(select a."+"col"+A+" from(select (case A when """+A+""" then A end) "+"col"+A+" "+
"from tempAB) a inner join (select (case A when """+A+""" then A end) "+"col"+A+" "+
"from tempAB) b on a.col"+A+"=b.col"+A+") "+"table"+A+","
from (select distinct A from tempAB where B="b2") as f
select @sql=substring(@sql,0,len(@sql))
print @sql
exec(@sql)
计算机等级考试成绩什么时候出来|计算机等级考试辅导:SQL语句(行列转换及字符串求和)
http://m.kwkids.com/jisuanjilei/8373.html
推荐访问:计算机等级考试时间 计算机等级考试官网