首页 新闻 会员 周边 捐助

sql多排名序号列的问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2009-01-13 11:14

这样个表结构,是一个成绩记录的表,id为自增标示,

userid表示学生的id,classid表示课程的id,classvalues标示这个学生的这门课程的考试成绩

打算一句sql出下面这样的结果

 

有没有哪位高手帮忙解决一下谢谢了。

分数倾囊相送

下面是脚本sql

USE [test]
GO
/****** 对象:  Table [dbo].[Record]    脚本日期: 01/06/2009 10:22:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Record](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [userId] [int] NULL,
 [classId] [int] NULL,
 [ClassValues] [int] NULL
) ON [PRIMARY]
USE [test]
GO
/****** 对象:  Table [dbo].[User]    脚本日期: 01/06/2009 10:23:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User](
 [id] [int] NULL,
 [name] [nchar](10) NULL,
 [orderCode] [int] NULL
) ON [PRIMARY]
USE [test]
GO
/****** 对象:  Table [dbo].[Class]    脚本日期: 01/06/2009 10:23:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Class](
 [Id] [int] NULL,
 [className] [nchar](10) NULL
) ON [PRIMARY]

问题补充: 用户名和课程名,比如语文,数学,政治都是单独存在其他表中的 要实现复合表头,(最好能自动出表头),和多个排名是必须的。而且前面的学生姓名是按照拼音或者其他一定规律定好的顺序,而且成绩排名是每个学科从高分到低分进行的排名。排名不能打乱学生姓名的排列顺序
汤包的主页 汤包 | 初学一级 | 园豆:25
提问于:2009-01-06 10:23
< >
分享
所有回答(2)
0

自己写好样式

内容自己用repeater生成

调用数据的时候使用视图

最好按你的这个结构写个中间表

将数据写入倒中间表

然后显示的时候直接使用中间表

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-01-06 10:58
0

我的思路是:

1.先做三个视图,分别叫数学及其排名表,语文及其排名表,英语及其排名表。对于排名的计算可以使用rank函数,请参考这篇文章http://xujinmao.blogspot.com/2006/10/sql-serverranking-functions.html

比较详细。

2.之后在将这三个表通过userid相等条件链接起来达到你的目的。

详细的你自己写吧。

GUO Xingwang | 园豆:3885 (老鸟四级) | 2009-01-06 13:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册