有一表:
編號 考號 姓名
1 cc01 aa
1 cc02 bb
1 cc03 cc
1 cc04 dd
1 cc05 ee
...
我的目的就是根據每個考室的人數(使用者輸入)自動生成乙個表,如按乙個考室3個考生的效果如下:
考室 考號區間
1 cc01-cc03
2 cc04-cc05
create table tb(編號 int,考號 char(4),姓名 varchar(10))insert tb select 1 , 'cc01' , 'aa'
insert tb select 1 , 'cc02' , 'bb'
insert tb select 1 , 'cc03' , 'cc'
insert tb select 1 , 'cc04' , 'dd'
insert tb select 1 , 'cc05' , 'ee'
goselect ceiling(cnt/3.0) row,* into t
from
( select *,cnt=(select count(*) from tb where 考號<=a.考號)
from tb a
) tt
gocreate function dbo.f_str(@row int)
returns varchar(100)
asbegin
declare @re varchar(100)
set @re=''
select top 1 @re=考號 from t where row=@row order by 考號
select top 1 @re=@re+'-'+考號 from t where row=@row order by 考號 desc
return @re
endgo
select row [室號],dbo.f_str(row) [考號區間]
from t
group by row
drop table tb,t
drop function f_str
/*室號 考號區間
-------------------- --------------
1 cc01-cc03
2 cc04-cc05
(2 行受影響)
分考場問題
問題大致如下 有n個學生參加考試,每個考場裡的任意倆學生都不能認識,求需要的最少的考場的數量 首先輸入學生數量n,輸入m 接下來m行,每行兩個資料i,j,表示i與j認識 樣例輸入 5 81 2 1 31 4 2 32 4 2 53 4 4 5其結果為4 首先如果是假如任何認識的學生在同一考場的話用並...
回溯 分考場
問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1輸出格式 一行乙個整數,表示最少分幾個考場。樣例輸入 5 81 2 1 31 4 2 32 4 2 53 4 4 5樣例輸出 4 樣例輸入 5 101...
回溯 分考場
問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1輸出格式 一行乙個整數,表示最少分幾個考場。樣例輸入58 1 21 3 1 42 3 2 42 5 3 44 5 樣例輸出 4樣例輸入510 1 21...