隨機分配體育比賽胸牌號

2021-05-04 05:35:23 字數 3674 閱讀 7177

現在有乙個體育競賽專案,比賽跑的

要寫乙個儲存過程自動分配胸牌號碼

每一場比賽都有好幾百人參加,會分

成不同的小組來賽跑,每一組按理說

都是從1排到n的,但是呢,有些人會

參加好幾個組的比賽,比如下表張五

參加了小組一的比賽又參加了小組二

的比賽,領導要求在同一次競賽的不同

小組中的同乙個人都是同乙個胸牌號,

要不換來換去太麻煩了,所以張五是

5號和王三是6號,導致小組二自動分

配號碼時就跳過5號和6號,有誰可以

幫我寫這個儲存過程嗎?

有求在網頁上按乙個button系統就自動

分配好乙個競賽所有人的胸牌號,如

比賽id =1

姓名  比賽id  小組id  胸牌號碼

張一    1        1      1

張二    1        1      2 

張三    1        1      3

張四    1        1      4

張五    1        2      5

張五    1        1      5

王一    1        2      1

王二    1        2      2

王三    1        2      6

王三    1        1      6

王四    1        2      3

王五    1        2      4

王六    1        2      7

王七    1        2      8

謝謝!

if not object_id('tb') is null

drop table tb

gocreate table tb([姓名] nvarchar(2),[比賽id] int,[小組id] int,[胸牌號碼] int)

insert tb

select n'張一',1,1,1 union all

select n'張二',1,1,2 union all

select n'張三',1,1,3 union all

select n'張四',1,1,4 union all

select n'張五',1,2,5 union all

select n'張五',1,1,5 union all

select n'王一',1,2,1 union all

select n'王二',1,2,2 union all

select n'王三',1,2,6 union all

select n'王三',1,1,6 union all

select n'王四',1,2,3 union all

select n'王五',1,2,4 union all

select n'王六',1,2,7 union all

select n'王七',1,2,8

goupdate tb set [胸牌號碼] = null

select * from tb

;with t

as(select *,rid = row_number() over (order by getdate())

from tb

where 小組id = 1

)update tb

set 胸牌號碼 = t.rid

from t where t.姓名 = tb.姓名

declare @xm nvarchar(10),@xp int

declare @i int

set @i = 1

declare cur cursor for select [姓名],[胸牌號碼] from tb where 小組id = 2 and 胸牌號碼 is null

open cur

fetch cur into @xm,@xp

while @@fetch_status =0

begin

while exists(select 1 from tb where 小組id = 2 and 胸牌號碼 = @i)

set @i = @i + 1

update tb set 胸牌號碼 = @i where current of cur

fetch cur into @xm,@xp

end

close cur

deallocate cur

select * from tb

/*姓名 比賽id 小組id 胸牌號碼

---- ----------- ----------- -----------

張一 1 1 null

張二 1 1 null

張三 1 1 null

張四 1 1 null

張五 1 2 null

張五 1 1 null

王一 1 2 null

王二 1 2 null

王三 1 2 null

王三 1 1 null

王四 1 2 null

王五 1 2 null

王六 1 2 null

王七 1 2 null

姓名 比賽id 小組id 胸牌號碼

---- ----------- ----------- -----------

張一 1 1 1

張二 1 1 2

張三 1 1 3

張四 1 1 4

張五 1 2 5

張五 1 1 5

王一 1 2 1

王二 1 2 2

王三 1 2 6

王三 1 1 6

王四 1 2 3

王五 1 2 4

王六 1 2 7

王七 1 2 8

python隨機分配 python 隨機分類

encoding utf 8 import pandas as pd import numpy as np from sklearn import datasets,linear model from sklearn.metrics import roc curve,auc import pylab...

論體育彩票的隨機數

彩票在經濟低迷的的時候越發紅火,近期的銷量率破新高.彩票是唯一可以迅速致富,而且普通人都可以投資得起的專案,為此本人也進行了一些研究,並會持續不斷的進行研究.比較而言,福彩的雙色球和體彩的超級大樂透是彩票中銷量最好的品種,他們有共同的特點就是與出球順序無關,m選n,即在m個數中選則n個,選中即中,與...

用matlab實現的教師 考場隨機分配

最近要實現乙個隨機分配老師到考場的功能,想了想,用matlab實現了 功能如下 1.每個考場安排兩個老師,並且完全隨機 2.考場分為不同的組,每個組的考場數不同 3.要能對教師資料和考場資料進行更新。考慮老師資料用teacher.xls儲存,考場資料用room.txt儲存,核心 量並不多。num,t...