寻求语句高手,寻求语句高手!!!!!!!!!
表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);
------解决方案--------------------
以上是10人/组的测试