| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1412 人关注过本帖
标题:随机抽30个记录,不要显示重复记录
只看楼主 加入收藏
lired
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-30
收藏
 问题点数:0 回复次数:5 
随机抽30个记录,不要显示重复记录
在command1_click事件里面入这段,如下:
sele 1
use biao1
sele 2
use biao2
sele 1
count to ss
for i=1 to 30
a=round(rand()*ss)
go to a
sele 2
appe from biao1
sele 1
endfor
sele 1
use
sele 2
use
但还是不能实现呀!就算可以抽出来,还是会有重复记录呀
请高手指教一下
搜索更多相关主题的帖子: 随机 记录 
2006-07-02 00:02
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 

你的程序中没有具备判断重复记录功能的代码,当然(但不绝对)会出现重复的记录。建议以下两个途径:
途径一:建立一个30个元素的数组,用来保存所产生的随机数(a),且每产生一个随机数就与前面的进行比对,一但重复的就放弃重新产生,直到不重复的才存入数组,并用以指向biao1的相应记录号。
途径二:每产生一个随机数并把记录指针移动到biao1的相应记录时,把这个记录与biao2的所以记录进行比较,如果有相同记录就不执行appe from biao1命令。


当然还有其他途径,多试试,一定会很有收获。


两人行已有我师……
2006-07-02 11:15
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
你程序的最大问题是语句APPEND FROM BIAO1,它将整个表的内容传给了BIAO2,不能完成任务。

确定BIAO1.DBF的关键字段(比如是"字段1"),可将程序修改为
CLOSE ALL
SET SAFETY OFF
SET DELETE OFF
SELECT 1
USE BIAO1
COPY TO BIAO2 STRUCTURY
SELECT 2
USE BIAO2
SELECT 1
SS=RECCOUNT()
I=1
DO WHILE I<=30
A=INT(RAND()*SS)
A=IIF(A<1,1,IIF(A>SS,SS,A))
GO A
SELECT 2
LOCATE ALL FOR 字段1=BIAO1.字段1
IF EOF()
APPEND BLANK
REPLACE 字段1 WITH BIAO1.字段1 &&,字段2 WITH BIAO1.字段2,...
I=I+1
ENDIF
SELECT 1
ENDDO
CLOSE ALL

[此贴子已经被作者于2006-7-2 17:08:17编辑过]


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-07-02 17:02
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
呵呵, 倒是忘记了Append from的错误,虎哥专业!吾佩服!!

两人行已有我师……
2006-07-02 17:20
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
啸凡兄弟的思路也很好,提出了多种解决方案。总之,既要保证随机还要保证不重复,就必须进行判断。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-07-02 18:03
lired
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-30
收藏
得分:0 
谢谢各位哥哥帮忙~~
2006-07-02 20:04
快速回复:随机抽30个记录,不要显示重复记录
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045095 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved