紧急求助:VF命令
您好,我是一个初学VF的人,有这样一个难题,请您帮助一下。有一个学校给学生报名,出现这样一个问题:有部分学生背着学校报了两三次名,例如张三在1班,4班报了两次名,一个人占了两个报名号,如何把他查出来?表格是一个VF的表,表里的内容有“报名号”“姓名”“身份证号”“所报科目”,我想从身份证号入手,查出重复报名的学生,希望您给指导一下。 报名程序出现问题,它允许同一个学生报名多次。从根源着手,报名时根据身份证号进行查询,若存在于表中则不予报名,否则允许报名。
既然已经出现这样的问题,可将重复记录保留一个即可。select * from 表 group by 身份证号 我以前也碰到过这个问题
那时没人帮我,没办法我用了一个非常老土的办法
use (表名)
sort to (表名1) on (身份证号的字段名)
use
use (表名1) in 0 excl
sele (表名1) &&新加一个字段,数值型,字节为1,把身份证号的字段改成字符型
repl (新字段名) with 1 all
total on (身份证号的字段名) to (表名2) &&进行汇总
use
use 表名2
brow &&看新字段里面的数字,如果变成2或者3,反正不是1的说明肯定有2条以上的记录存在
回复 1# 的帖子 不太好
你给我说的这个方法是把其中的一个给删了,我们这得领导的意思是找出重复报名的人,让学生自己选择用哪个号,这是用机读卡过的,不存在程序问题。请您告诉我如何找出重复报名的学生 按我的操作就能找到 select * from 表 where 身份证号 in (select 身份证号 from 表 having count(*)>1 group by 身份证号)
非常感谢各位
真的感谢各位对我的热心帮助,谢谢了新手select的理解
select * from 表 where 身份证号 in (select 身份证号 from 表 having count(*)>1 group by 身份证号)先分组查询(以身份证号码分组),然后计算同一身份证号码大于2个数目(count命令),然后用in在这个东东里面查找身份证号.....从表查找身份号码...不明白了 呵呵 谁给具体解释下
其实也很简单……看你怎么做
1、用身份证号为关键字段索引:index on 身份证号 to 索引文件
brow && 查看表 身份证号相同或相近的会集中在一起
2、做个小程序:
index on 身份证号 to 索引文件1 uniq && 唯一性索引
copy to array arrayname fiel 身份证号
count to nzens && 统计真实人数
set index to && 关闭索引,恢复原始记录
n1=1
do while n1<=nzens
cn1=str(n1)
SET FILTER TO 身份证号=arrayname(&cn1,1)
count to nconf && 统计重复身份证号
if nconf>1
go top
n2=1
do while n2<=nconf
? 姓名,身份证号,报考科目…… && 打印或者生成文本或者生成表记录
skip
n2=n2+1
enddo
endif
n1=n1+1
enddo
SET FILTER TO
页:
[1]
