这个是记分表:
需要按照标准id来把每个人的科目分数(id_biaozhu)变成横列,列出来。当然之前要加入id_jiaoshi 和id_banji的限制条件。
这是标准表:
这个是学生表:
通过3个表的查询,来实现在限定条件下的效果。
实现效果:
网上看看,说是要3表的交叉查询,对了,我哪几项标准,是动态生成的,所以需要动态查询。
declare @sql nvarchar(4000)select @sql=''select @sql=@sql+',['+biaozhun_name+'] =sum(case id_biaozhun when '''+id_biaozhun+''' then defen_dxbenke else 0 end) 'from(select distinct b.id_biaozhun,c.biaozhun_name from jifen as b inner join pingjiabiaozhun as c on c.id_biaozhun=b.id_biaozhun and b.id_jiaoshi=1+ and b.id_banji=6 ) as a order by id_biaozhun exec('select id_stu 编号'+@sql+',个人本课总分=sum(defen_dxbenke)into # from jifen as a group by id_stu select b.stu_name as 姓名,a.* from # as a inner join stu_user as b on a.编号=b.id_stu where id_jiaoshi=1 and id_banji=6')
大家帮忙看看这个交叉查询的例子,表中只有一个班级数据时,查询没有错误,当有多个用户的数据时,查询时就报错
id_jiaoshi和id_banji是查询时的约束条件,因为这个jifen表里有多位教师建立的班级信息,每个教师又可以建立不同班级。只查询到一个老师一个班级的学生。
求高手指点迷津
没见过这种写法的 )0.0
1、先把不动态拼接的sql语句,写好,然后在去拼接
2、如果不符合的要求,可以通过sqlserver profile ,去看拼接sql的最终执行语句,从而找出问题所在
*、你可以试试在数据库调试,只是我不习惯sqlserver调试功能,很少用
这个事单表的,我需要多表的动态查询。
@bj大海:
我写了一个大概,你自己再修改一下吧
declare @sql varchar(8000) declare @jiaoshi int set @jiaoshi =2 set @sql ='select Stu_user.id_stu ,Stu_user.stu_name' select @sql =@sql +', sum(case biaozhun_name when '''+biaozhun_name+''' then defen_dxbenke else 0 end) as '''+biaozhun_name+''' '+char(10) from (select distinct biaozhun_name from pingjiabiaozhun) T print @sql select @sql=@sql+'from jifen left join pingjiabiaozhun on jifen.id_biaozhun=pingjiabiaozhun.id_biaozhun left join Stu_user on jifen.id_stu=Stu_user.id_stu where Stu_user.id_jiaoshi = '''+convert(varchar(20),@jiaoshi)+''' group by Stu_user.id_stu,Stu_user.stu_name' print @sql exec(@sql)
十分不行话,先创建一个结果的临时表,然后循环或是光标对记分表进行分析。然后插入或是更新至临时表中。
可以参考下面链接:
http://www.cnblogs.com/insus/p/3300818.html
http://www.cnblogs.com/insus/articles/1969896.html
http://www.cnblogs.com/insus/articles/1970577.html
http://www.cnblogs.com/insus/archive/2011/03/04/1970707.html
http://www.cnblogs.com/insus/articles/1971446.html
大哥,我是逛博客园好几个月了,是个初学者,第一次就发现了您,感觉你什么都知道,前几天申请了个账号就关注了你,你能指点我一下,关于WebSocket的问题吗