请教高手:全部分奉上!!!!!

hxxx666 2013-10-22 09:47:56
表1
学校 姓名
002 张三
002 李桑
002 王大
002 赵2
......
001 A1
001 ZHAN
001 陆家
......
003 甲
003 丙
003 乙
.........

结果表
序号 学校 姓名
1 001 陆家
2 002 李桑
3 003 丙
4 001 A1
5 002 张三
6 003 甲
.........
30 xxx xxx
1 xxx xxx
2 xxx xxx
....
30 xxx xxx
1 xxx xxx
2 xxx xxx
......
30 xxx xxx
学校、学生随机取,一组每家学校取一名学生排好(每家学校都要取1名学生),30人为一组排好后取下一组,序号都是1至30,剩余的有几人算几人(学校、学生对应,不要重复取),直到所有学校取完为止,存入另一个数据库。(不用LINQ,我不会)谢谢。
...全文
248 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
我试了,结果是对的,但要将数据写入另一个表,要怎么做
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
哦!看到了,我试试,谢谢!
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
高手!!!谢谢。请问哪里可以调整到30人,代码看不出吗?
md5e 2013-10-23
  • 打赏
  • 举报
回复


上图是15人一组的效果
md5e 2013-10-23
  • 打赏
  • 举报
回复
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 test ) as tb2
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
可不可以在ASP.NTE中用多条c#和sql server语句达到以上效果???
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
30/[学校数] 不一定能除尽,有时候能,有时候不能,多少不定
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
学校数和各学校的人数都不固定
md5e 2013-10-23
  • 打赏
  • 举报
回复
30/[学校数] 能除尽吗? floor(([序号]-1)/([要取的人数]/[学校数]))
hxxx666 2013-10-23
  • 打赏
  • 举报
回复
出问题了,怎么人多就错了。 组 学校 姓名 序号 1 001 四分卫 1 1 002 数 2 1 003 3 1 004 色弱 4 1 005 收到公司打工 5 1 006 TTT 6 1 008 rrr 7 1 001 是否 8 1 002 ③ 9 1 003 2342 10 1 004 水电费 11 1 005 i比你们 12 1 006 QQQQ 13 1 008 rrrr 14 1 001 阿 15 1 002 是 16 1 003 456 17 1 004 水电费 18 1 005 啊沙发沙发 19 1 008 rrrrrr 20 1 001 啊 21 1 003 是否 22 1 004 fff 23 1 005 受到广泛受到该 24 1 001 22 25 1 003 发 26 1 004 水电费 27 1 005 是大概是个 28 1 001 二我 29 1 003 30 1 004 hhhh 31 1 005 收到公司打工是 32 1 001 是否 33 1 003 飞 34 1 004 uu 35 1 005 同意同意 36 1 001 女不女 37 1 003 38 1 005 是公司是否 39 1 001 沃尔沃 40 1 003 234 41 1 001 儿童 42 1 003 水电费 43 2 001 问 1 2 003 玩儿 2 2 001 问问 3 2 003 收发室 4 2 003 656 5
H_Gragon 2013-10-23
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
上图是15人一组的效果
无敌小二傻 2013-10-23
  • 打赏
  • 举报
回复
引用 6 楼 u012400397 的回复:
我试了,结果是对的,但要将数据写入另一个表,要怎么做
列顺序保持一致就可以了, insert into table1 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 test ) as tb2 不一致的话就 insert into table1(col,col2) 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 test ) as tb2
lovebaby 2013-10-22
  • 打赏
  • 举报
回复
SQL里有个newid随机函数,到SQLSERVER区提问试试

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧