向楼主提个笨办法,类似于手工操作的:1)屏蔽掉所有已经满30人的考场记录;2)从第一条不满30人的记录开始循环起:用30减去该记录已有人数,得出可容纳的人数;用SELECT-SQL命令检索出小于等于这个可容纳人数的最大人数记录;把两者结合起来(如何结合,你自己去设计),并对合并过的那条记录作好标记,以免以后再用到;再判断结合后的考场是否已满30人,不满的话再找可容纳人数范围内的最大人数记录。若找不到,或所有不满30人的记录均已用过,则对第一条记录作标记;找下一条未作过标记的不满30人的考场,用30减... ...(循环这一步开始时的工作)。
不知道楼主是否看得懂我说的。