这样个表结构,是一个成绩记录的表,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]
自己写好样式
内容自己用repeater生成
调用数据的时候使用视图
最好按你的这个结构写个中间表
将数据写入倒中间表
然后显示的时候直接使用中间表
我的思路是:
1.先做三个视图,分别叫数学及其排名表,语文及其排名表,英语及其排名表。对于排名的计算可以使用rank函数,请参考这篇文章http://xujinmao.blogspot.com/2006/10/sql-serverranking-functions.html
比较详细。
2.之后在将这三个表通过userid相等条件链接起来达到你的目的。
详细的你自己写吧。