说一下算法,具体代码没有时间写,可以提供思路。
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被全部循环。