日期:2014-05-17  浏览次数:20453 次

寻求语句高手,寻求语句高手!!!!!!!!!
表1
学校    姓名
002     张三
002     李桑
002     王大
002     赵2
......
001     A1
001     ZHAN
001     陆家
......
003     甲
003     丙
003     乙
.........

结果表 
序号 考场 座号  学校    姓名
1     1    1     001    陆家
2     1    2     002     李桑
3     1    3     003      丙
4     1    4     001     A1
5     1    5     002     张三
6     1    6     003     甲
.........
30    1    30    xxx     xxx
31    2    1     xxx     xxx
32    2    2     xxx     xxx
....
60    2    30    xxx      xxx
61    3     1    xxx      xxx
62    3     2     xxx      xxx
......

序号建表示自动生成。学校、学生随机取,一组每家学校取一名学生排好(每家学校都要取1名学生),30人为一组排好后取下一组,座号都是1至30,剩余的有几人算几人(学校、学生对应,不要重复取),直到所有学校取完为止,存入另一个数据库。(不用LINQ,我不会)谢谢。
求一条语句。我也试了几条语句,但都无法完成,仅供参考:
1.这条只能随机在各家学校取学生排好,考场和座号错误。
SqlCommand myda = new SqlCommand("insert into tb2(考场,学校,姓名,座号)Select (floor(([序号]-1)/10) + 1) as '组',[学校],[姓名],Row_Number() OVER(PARTITION by floor(([序号]-1)/10) Order by [序号],[学校]) as '序号' From(SELECT [学校],[姓名],Row_Number() OVER(PARTITION BY [学校] Order by newid()) AS '序号'FROM tabbl) as tb2", con);
2.下面这条,只能排考场和座号。 
SqlDataAdapter mydaee = new SqlDataAdapter("select  考场 =ROW_NUMBER() OVER(PARTITION by 序号%30 Order by [序号]),座号=ROW_NUMBER() OVER(PARTITION by(序号-1)/30 Order by [序号]) from tb2", con);
       
        
sql

------解决方案--------------------


以上是10人/组的测试