数据库中有两个表,学员反馈表中的FbID对应反馈信息表的serID
/*--学员反馈表--*/
班级编号 教师编号 学员编号 分值项
SELECT SerID, CassID, TeaSerID, UserSerID, FbID, FbFraction FROM SX_StuFeedback /*--反馈信息表--*/
标题 分值A 分值B 分值C 分值D 分值E
SELECT SerID, FbTitle,FbFractionA, FbFractionB, FbFractionC, FbFractionD, FbFractionE
FROM SX_Feedback 表中有如下数据
/*--反馈信息表--*/
1,AAAA,10,8,6,4,2
2,BBBB,10,8,6,4,2
3,CCCC,10,8,6,4,2
4,DDDD,10,8,6,4,2
.....................
/*--学员反馈表--*/
1,3,101450,101001,1,10
1,3,101450,101001,2,8
1,3,101450,101001,3,8
1,3,101450,101001,4,101,3,101450,101002,1,6
1,3,101450,101002,2,6
1,3,101450,101002,3,4
1,3,101450,101002,4,8
......................
要查询出以下格式的数据
标题 分值A总分 分值B总分 分值C总分 分值D总分 总分
AAAA 10 0 6 0 16
BBBB 0 8 6 0 14
CCCC 0 8 0 4 12
DDDD 10 8 0 0 18
................................
求高手给个查询语句,先谢谢了
/*--学员反馈表--*/
班级编号 教师编号 学员编号 分值项
SELECT SerID, CassID, TeaSerID, UserSerID, FbID, FbFraction FROM SX_StuFeedback /*--反馈信息表--*/
标题 分值A 分值B 分值C 分值D 分值E
SELECT SerID, FbTitle,FbFractionA, FbFractionB, FbFractionC, FbFractionD, FbFractionE
FROM SX_Feedback 表中有如下数据
/*--反馈信息表--*/
1,AAAA,10,8,6,4,2
2,BBBB,10,8,6,4,2
3,CCCC,10,8,6,4,2
4,DDDD,10,8,6,4,2
.....................
/*--学员反馈表--*/
1,3,101450,101001,1,10
1,3,101450,101001,2,8
1,3,101450,101001,3,8
1,3,101450,101001,4,101,3,101450,101002,1,6
1,3,101450,101002,2,6
1,3,101450,101002,3,4
1,3,101450,101002,4,8
......................
要查询出以下格式的数据
标题 分值A总分 分值B总分 分值C总分 分值D总分 总分
AAAA 10 0 6 0 16
BBBB 0 8 6 0 14
CCCC 0 8 0 4 12
DDDD 10 8 0 0 18
................................
求高手给个查询语句,先谢谢了
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',77)declare @sql varchar(8000)
set @sql = ' 'set @sql = @sql+' select aa.*,bb.小计 from '
set @sql = @sql+'( select name '
select @sql = @sql+ ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
set @sql = @sql+' from test '
set @sql = @sql+' group by name union all 'set @sql = @sql+' select name=''总计'''
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
set @sql = @sql+' from test 'set @sql = @sql+' union all '
set @sql = @sql+' select name=''平均'' '
select @sql = @sql + ',convert(decimal(5,2),(sum(case km when '''+km+''' then cj end)*100/count(distinct test.name))/100.00) ['+km+']'
from (select distinct km from test) as a
set @sql = @sql+' from test '
set @sql = @sql+') aa left join ( '
set @sql = @sql+' select 小计=sum(cj),name from test group by name
union all
select 小计=sum(cj),name=''总计'' from test
union all
select 小计=convert(decimal(5,2),(sum(cj)*100/count(distinct test.name))/100.00),name=''平均'' from test )'
set @sql = @sql+' bb on aa.name=bb.name 'exec(@sql)drop table test
查询分析器里运行一下看看和你的比较像~
运行是出现了转换错误哦