为今天在考考车分配考生,查询出哪辆车上人最少 就分配一个上去、
有张临时表 #CardOnLine 是今天的考车

Studentinfo的字段 考车号A 默认为NULL
我是这样子写的
(SELECT 考车号,CNum FROM #CardOnLine LEFT JOIN (SELECT 考车号A,Count(*) as CNum FROM Studentinfo GROUP BY 考车号A) Ta ON Ta.考车号A=#CardOnLine.考车号) ORDER BY CNum

上图中 考车3 为NULL 就说明 考车3 上没有人现在。
到这里 没出问题。
加上一个 TOP 1 那么 SELECT结果集返回的就是 最少人的考车了。这句运行 能返回 考车3
接近我要的结果了。
(SELECT top 1 考车号 FROM #CardOnLine LEFT JOIN (SELECT 考车号A,Count(*) as CNum FROM Studentinfo GROUP BY 考车号A) Ta ON Ta.考车号A=#CardOnLine.考车号) ORDER BY CNum
我想把这个 返回的值放到一个变量里 然后去 UPDATE 数据
有问题的SQL如下:
declare @chvCNum varchar (10)
SELECT @chvCNum=((SELECT top 1 考车号 FROM #CardOnLine LEFT JOIN (SELECT 考车号A,Count(*) as CNum FROM Studentinfo GROUP BY 考车号A) Ta ON Ta.考车号A=#CardOnLine.考车号) ORDER BY CNum)
print @chvCNum
服务器: 消息 156,级别 15,状态 1,行 2
在关键字 'ORDER' 附近有语法错误。
或者有更好的方法
相要的效果就是 随机分配考车,
Studentinfo 表 有 字段 准考证明编号 和考车号A
分配 就是 把 考车号 写到 考车号A 这个字段上去

但每辆考车上的人数最好是平均的。
------解决思路----------------------
改成这样 你的夸号有问题。
declare @chvCNum varchar (10)
SELECT @chvCNum=(SELECT top 1 考车号 FROM #CardOnLine LEFT JOIN (SELECT 考车号A,Count(*) as CNum FROM Studentinfo GROUP BY 考车号A) Ta ON Ta.考车号A=#CardOnLine.考车号ORDER BY CNum)