求助 一个数据表问题

clf52099 2006-05-02 11:00:00
我用datagrid绑定数据表显示如下
--------------------------------------------------------
姓名 学号 科目名称 科目分数 班级名称

张三 2003001 网页设计 95 2002级计算机一班
张三 2003001 数据结构 76 2002级计算机一班
李四 2003002 数据结构 65 2002级计算机二班
李四 2003002 网页设计 65 2002级计算机二班
---------------------------------------------------------

我想在datagrid中实现这种格式--------------------------------------------------------
姓名 学号 科目名称 科目分数 科目名称 科目分数 班级名称 总分 排名

张三 2003001 网页设计 95 数据结构 76 2002级计算机一班 171 1
李四 2003002 网页设计 65 数据结构 65 2002级计算机二班 130 2
-----------------------------------------------------------

该怎样实现呢 希望大家指点!
...全文
216 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanbinjie 2006-05-02
  • 打赏
  • 举报
回复
declare @sql varchar(4000)
set @sql = 'select 姓名'
select @sql = @sql + ','''+ 科目名称 +'''[科目名称],sum(case 科目名称 when '''+科目名称+''' then 科目分数 end) ['+科目名称+']'
from (select distinct 科目名称 from 学生信息) as a
select @sql = @sql+',max(班级名称) [班级名称]'
select @sql = @sql+',sum(科目分数) [总分]'
--select @sql = @sql+','
select @sql = @sql+' from 学生信息 group by 姓名 order by 总分 desc'
exec(@sql)

之前发的那个没有 班级名称,总分 现在补上了
但实在不知道查询语句里面怎么排名
后面的补充
guanbinjie 2006-05-02
  • 打赏
  • 举报
回复
declare @sql varchar(4000)
set @sql = 'select 姓名'
select @sql = @sql + ','''+ 科目名称 +'''[科目名称],sum(case 科目名称 when '''+科目名称+''' then 科目分数 end) ['+科目名称+']'
from (select distinct 科目名称 from 学生信息) as a
select @sql = @sql+' from 学生信息 group by 姓名,班级名称'
exec(@sql)
taochunsong 2006-05-02
  • 打赏
  • 举报
回复
不要科目,直接显示总分,我知道怎么做
就像这样:


姓名 学号 班级名称 总分 排名

张三 2003001 2002级计算机一班 171 1
李四 2003002 2002级计算机二班 130 2

用SELECTE COUNT() +GROUP BY 语句就可以实现的



把科目都加上去,就不知道怎么做了
不过我想是可以实现的,就是动态列生成

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧