以下是引用bccn0906在2013-11-25 20:21:51的发言:
因没数据,未经测试
SELECT a.hydl,a.fc FROM (SELECT hydl,fc,COUNT(*)+5 as k FROM yb GROUP BY hydl,fc) a,(SELECT hydl,fc,COUNT(*) as s FROM cy1 GROUP BY hydl,fc) b INTO CURSOR ls3 WHERE a.hydl=b.hydl AND a.fc=b.fac AND a.k<=b.s
SELECT a.hydl,a.fc,COUNT(*) as x FROM wx a,ls3 b INTO CURSOR ls4 WHERE a.hydl=b.hydl AND a.fc=b.fac
SELECT a.*,RECNO() 序号,RECNO() 记录号 FROM cy1 a,ls4 b INTO CURSOR cy1_tmp1 WHERE a.hydl=b.hydl AND a.fc=b.fac ORDER BY a.hydl,a.fc,a.random
REPLACE ALL 序号 WITH RECNO() IN cy1_tmp1
SELECT hydl,fc,MIN(序号) 序号 FROM cy1_tmp1 INTO CURSOR cy1_tmp2 GROUP BY hydl,fc
SELECT a.* FROM cy1_tmp1 a,cy1_tmp2 b, ls4 c INTO CURSOR cy1_tmp3 WHERE a.hydl=b.hydl AND a.fc=b.fac AND a.hydl=c.hydl AND a.fc=c.fac AND a.序号
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
所有的表都是这个结构,举个例子,这是张wx表,52是大类,FC是表示层数,里面有5层,先算出每层里的个数,例如52里第一层有4家,第二层有4家,第三层有5家,第四层有4家,第五层有4家,以此类推,每个大类都这样分层算出个数来,CY1也是一样计算,加入CY152大类第一层有10家,也就是大于WX里4+5,那就继续执行,将CY1里52大类第一层的个数按RADOM排序,取最小的4家,并将这四家标准在CY1和33CYK里的BZ2里,填个1就可以,以此类推,不知道我这样说清楚了没,麻烦各位看看我那个程序有没有问题,还有就是我对两张表找出相同记录并在其中一张表上赋值不太会用。