首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求sql话语高手帮忙看下

2013-09-06 
求sql语句高手帮忙看下在做一个在线考试系统,每个班级里面有多个学生,每次考试有多套试卷,这些试卷分配给

求sql语句高手帮忙看下
在做一个在线考试系统,每个班级里面有多个学生,每次考试有多套试卷,这些试卷分配给多个班级。现在想根据学号让学生随机得到分配的试卷,怎么实现:

Users表  UserID  ClassName  学生信息表

Paper_Class ID PaperID ClassID PaperName ClassName  试卷与班级分配结果表

想让学生根据学号随机得到所在班级分配试卷中的一套,求大神指教。。。。
[解决办法]

引用:
这个可以满足一部分人分到试卷,但是问题是没有循环,如果一个班级只有2套试卷人有几十个,这里只有两个人能分到试卷。想让几十个人随机分到那2套中的一套,求如何修改,谢谢啦

--参考:
SELECT a.*,b.*
FROM 
(SELECT rowid=row_number() over(PARTITION BY ClassName order BY UserID), * from 学生信息表) a--楼主还可以把这行里的order by改成order by newid(),随机性更强
LEFT JOIN
(SELECT rowid=row_number() over(PARTITION BY ClassName order BY NEWID()), cnt=COUNT(1) OVER(PARTITION BY Classname), * FROM 试卷与班级分配结果表) b
    ON a.ClassName = b.ClassName
        AND a.rowid % cnt + 1 = b.rowid

热点排行