说一下算法,具体代码没有时间写,可以提供思路。
1、SELECT
zjid ,count(*) as 条数 FROM TMInfo group by
zjid
;
先生成一个查询(暂时命名为查询1),从而获得所有的zjid 和他们各自的条数。
2、在这个查询1中循环,每循环一条,就取出 查询1.sjid (例如首次是1),拼凑成一个新的查询语句:
select
tmid ,TMInfo.ZJID,TMNUM
from TMInfo
where
TMInfo.zjid = 1
执行这个语句,得到临时表1
3、在临时表1 中打乱TmNum的排序(方法很多,这里不详细写了,有随机函数,也有总条数,应该对你不难)
4、打乱后,update临时表中的TmNum 到 TMInfo中去 (可以用临时表1的tmid为关联字段)
5、删除临时表,从查询1中取第二条记录,拼凑新的查询语句,
select
tmid ,TMInfo.ZJID,TMNUM
from TMInfo
where
TMInfo.zjid = 2
’以后还有3、4、5.……
执行这个语句,并重新生成临时表1……重复第3、4、5步,继续循环,直到查询1被全部循环。